На всякий случай, если вы хотите быть более конкретным в отношении детей - вы также можете использовать селекторы для них.
Пример:
<pets>
<cat>
<foo>don't care about this</foo>
</cat>
<dog>
<foo>not this one either</foo>
</dog>
<lizard>
<bar att="baz">lizard should be returned, because it has a child of bar</bar>
</lizard>
<pig>
<bar>don't return pig - it has no att=bar </bar>
</pig>
</pets>
Теперь вы заботитесь только о том, чтобы все pets
имели любого ребенка bar
, который имеет атрибут att
со значением baz
. Вы можете использовать следующее выражение xpath:
//pets/*[descendant::bar[@att='baz']]
Результат
<lizard>
<bar att="baz">lizard should be returned, because it has a child of bar</bar>
</lizard>