Добрый день! Предположим, что следующий XML:Элементы выбора Xpath, которые содержат подмножество определенного списка
<store>
<book id="b1"></book>
<book id="b2"></book>
</store>
<store>
<book id="b2"></book>
<book id="b4"></book>
</store>
<booklist>
<book id="b1"></book>
<book id="b2"></book>
<book id="b3"></book>
</booklist>
Я хочу написать Xpath запрос, который будет выбирать магазины, которые
имеет все свои книги в Booklist. В моем примере это первый магазин, но не второй.
Я пробовал
//store[./book/@id = /booklist/book/@id]
но он выбирает магазины, которые содержат как минимум 1 общую книгу, а не все из них.
Кроме того, не найдено ни одного предиката типа «содержит» для двух списков узлов, поэтому мне не хватает идей.
Редактировать: Я очень ценю любую помощь, но я бы предпочел решение, которое использует «базовые» возможности Xpath (если существует). Для меня это новый язык. Тем не менее, спасибо всем, кто до сих пор отвечает.
Хороший вопрос +1 – cordsen
Хороший вопрос, +1. См. Мой ответ для кратчайшего и простейшего решения одноразового использования XPath. Также поясняется пояснение. –