XPath: Как проверить, существует ли атрибут?



учитывая следующий XML, как написать запрос XPath для извлечения узлов, где атрибут ?:



<node1>
<node2>
<node3 foo='bar'></node3>
<node3></node3>
<node3 bar='foo'></node3>
<node3 foo='foobar'></node3>
</node2>
</node1>
708   3  

3 ответов:

коротко и ясно:

//*[@foo]

конечно, вы должны использовать более конкретные выражения. Но с [@attributeName] вы получаете все узлы, которые имеют этот атрибут.

используйте следующее выражение XPath

//*[boolean(@foo)]

Если вы используете и XPath, это может помочь вам:

count(//*[@foo])

он вернет количество узлов/дочерних элементов, которые имеют атрибут foo

Comments

    Ничего не найдено.