Получить конкретные XML-значения с помощью конфигурации Commons
Допустим, у нас есть следующий XML:
<root>
<sub>
<id>1</id>
<values>
<value>1</value>
<value>2</value>
</values>
</sub>
<sub>
<id>2</id>
<values>
<value>16</value>
<value>15</value>
</values>
</sub>
</root>
Что я хочу с конфигурацией Apache Commons: я хочу получить все значения для sub
с id
2. Как я мог этого достичь? Я ничего не нахожу в документации, как я могу запросить с динамическим номером иерархии.
2 ответа
Решение
//
часто приводит к медленному выполнению (вызывает поиск всего (под) дерева XML).
Используйте:
/*/sub[id = 2]/values/value
Это выбирает любой value
элемент, который является потомком values
элемент, который является потомком sub
элемент которого id
ребенок имеет строковое значение "2"
и что (sub
) является дочерним элементом верхнего элемента документа XML.