#java #xml #xpath #xquery
#java #xml #xpath #xquery
Вопрос:
У меня есть следующее xml
:
<Products>
<Product>
<name>Sample name</name>
<attribute id="sampleid" location="sampleLocation" type="sampleType"/>
<price>12345</price>
</product>
</Products>
Как я могу вернуть следующие данные из этого XML для заданного имени (всегда уникального):
1. location (e.g. "sampleLocation")
2. type (e.g. "sampleType")
3. price (e.g. 12345
В настоящее время я могу запрашивать каждый из них по отдельности для возврата значений, но я не уверен в синтаксисе для возврата нескольких значений вместе.
Пример отдельного запроса для определения местоположения:
ResourceSet resourceSet = service.query(
format("//Products/Product[name='%s']"
"/attribute/@Location/string()"
, StringEscapeUtils.escapeXml(journey_Name)
));
Приведенный выше запрос вернет: «SampleLocation».
Комментарии:
1. Какой процессор XQuery и какой API вы используете?
Ответ №1:
Следующий запрос возвращает последовательность из трех строк:
/Products/Product/(string(attribute/@location), string(attribute/@type), string(price))
Как вернуть последовательность из трех строк в ваше Java-приложение, зависит от используемого вами процессора XQuery и API, о которых вы нам не сообщили.