attribute - xpath实例



XPath:如何选择没有属性的节点? (2)

使用XPath,如何选择没有属性的节点(其中属性count = 0)?

例如:

<nodes>
    <node attribute1="aaaa"></node>
    <node attribute1="bbbb"></node>
    <node></node> <- FIND THIS
</nodes>

Answer #1

解决Marek Czaplicki的评论并扩大答案

//node[not(@*) or not(string-length(@*))]

....将选择所有具有零属性或具有全部空属性的节点元素。 如果它只是你感兴趣的特定属性,而不是全部,那么你可以使用它

//node[not(@attribute1) or not(string-length(@attribute1))]

...并且这将选择所有没有attribute1属性,该属性称为attribute1或属性为空的attribute1

也就是说,以下元素将被这些xpath表达式中的任何一个选出

<nodes>
    <node attribute1="aaaa"></node>
    <node attribute1=""></node> <!--This one -->
    <node attribute1="bbbb"></node>
    <node></node> <!--...and this one -->
</nodes>

Answer #2
//node[count(@*)=0]

将选择具有零属性的所有<节点>