Я нашел похожий вопрос по SO , однако, кажется, что это не совсем то, чего я хочу достичь:
Скажем, это пример XML-файла:
<root>
<item>
<id isInStock="true">10001</id>
<category>Loose Balloon</category>
</item>
<item>
<id isInStock="true">10001</id>
<category>Bouquet Balloon</category>
</item>
<item>
<id isInStock="true">10001</id>
<category>Loose Balloon</category>
</item>
</root>
Если я хочу получить «отфильтрованное» подмножество элементов item из этого XML, как я могу использовать выражение XPath для прямого обращения к этому?
XPathExpression expr = xpath.compile("/root/item/category/text()");
Теперь я знаю, что это будет оцениваться какоднако коллекция всего TextContent из категорий означает, что мне нужно использовать коллекцию для хранения значений, затем выполнить итерацию, а затем вернуться, чтобы снова получить другую связанную информацию, такую как идентификатор элемента.
Другойвопрос в том, как я могу правильно сослаться на родительский узел?
Скажем, это выражение xpath даст мне коллекцию всех узлов id, верно?Но то, что я хочу, это набор узлов элементов:
XPathExpression expr = xpath.compile("/root/item/id[@isInStock='true']");
Я знаю, что должен использовать ось «родителя» для ссылки на это, но я просто не могу сделать это правильно ...
Есть ли лучший способ сделать это?Изучение учебных пособий по w3cschools ...
Извините, я новичок в XPath на Java, и большое спасибо заранее.