XPath:如何select没有属性的节点?
使用XPath,如何select没有属性的节点(其中属性count = 0)?
例如:
<nodes> <node attribute1="aaaa"></node> <node attribute1="bbbb"></node> <node></node> <- FIND THIS </nodes>
//node[not(@*)]
这是XPathselect文档中名为“node”的所有节点,而不具有任何属性。
//node[count(@*)=0]
将select具有零属性的所有<节点>
解决Marek Czaplicki的评论并扩大答案
//node[not(@*) or not(string-length(@*))]
….将select所有具有零属性或具有全部属性的节点元素。 如果它只是你感兴趣的特定属性,而不是全部,那么你可以使用
//node[not(@attribute1) or not(string-length(@attribute1))]
…这将select所有的节点元素,或者没有一个attribute1
属性为空的attribute1
。
也就是说,下面的元素将被这些xpathexpression式中的任何一个选出
<nodes> <node attribute1="aaaa"></node> <node attribute1=""></node> <!--This one --> <node attribute1="bbbb"></node> <node></node> <!--...and this one --> </nodes>