鉴于以下XML,如何编写XPath查询以提取属性foo
存在的节点?:
<node1>
<node2>
<node3 foo='bar'></node3>
<node3></node3>
<node3 bar='foo'></node3>
<node3 foo='foobar'></node3>
</node2>
</node1>
答案 0 :(得分:144)
短而甜蜜:
//*[@foo]
当然你应该使用更具体的表达方式。但是使用[@attributeName]
,您将获得具有该属性的所有节点。
答案 1 :(得分:21)
使用以下XPath表达式
//*[boolean(@foo)]
答案 2 :(得分:8)
如果您使用和xpath,这可能会对您有所帮助:
count(//*[@foo])
它将返回具有属性foo
的节点/子节点数