XPath: How to check if an attribute exists?
Given the following XML, how do I write an XPath query to pull nodes where the attribute foo
exists?:
<node1>
<node2>
<node3 foo='bar'></node3>
<node3></node3>
<node3 bar='foo'></node3>
<node3 foo='foobar'></node3>
<开发者_开发知识库/node2>
</node1>
Short and sweet:
//*[@foo]
Of course you should use a more specific expression. But with [@attributeName]
you get all nodes which have that attribute.
Use the following XPath expression
//*[boolean(@foo)]
If you use and xpath, this maybe can help you:
count(//*[@foo])
it will return count of node/child that have attribute foo
精彩评论