使用XPath,如何选择没有属性的节点(其中属性count = 0)?
例如:
<nodes>
<node attribute1="aaaa"></node>
<node attribute1="bbbb"></node>
<node></node> <- FIND THIS
</nodes>
Run Code Online (Sandbox Code Playgroud)
48k*_*ocs 138
//node[not(@*)]
Run Code Online (Sandbox Code Playgroud)
这是XPath选择文档中名为"node"的所有节点,没有任何属性.
解决Marek Czaplicki的评论并扩大答案
//node[not(@*) or not(string-length(@*))]
Run Code Online (Sandbox Code Playgroud)
....将选择所有属性为零或属性为空的所有节点元素。如果这只是您感兴趣的特定属性,而不是全部感兴趣的属性,则可以使用
//node[not(@attribute1) or not(string-length(@attribute1))]
Run Code Online (Sandbox Code Playgroud)
...这将选择所有不具有称为attribute1OR 的属性或attribute1属性为空的节点元素。
也就是说,以下两个xpath表达式中的任何一个都会选择以下元素
<nodes>
<node attribute1="aaaa"></node>
<node attribute1=""></node> <!--This one -->
<node attribute1="bbbb"></node>
<node></node> <!--...and this one -->
</nodes>
Run Code Online (Sandbox Code Playgroud)
在这里查看jsfiddle示例
| 归档时间: |
|
| 查看次数: |
32682 次 |
| 最近记录: |