Учитывая следующий XML, как мне написать запрос XPath для извлечения узлов, где существует атрибут foo?
foo
<node1> <node2> <node3 foo='bar'></node3> <node3></node3> <node3 bar='foo'></node3> <node3 foo='foobar'></node3> </node2> </node1>
Коротко и сладко:
//*[@foo]
Конечно, вы должны использовать более конкретное выражение.Но с [@attributeName] вы получите все узлы, которые имеют этот атрибут.
[@attributeName]
Используйте следующее выражение XPath
//*[boolean(@foo)]
Если вы используете xpath, это может вам помочь:
count(//*[@foo])
вернет счетчик узла / потомка с атрибутом foo