Получить узел с наибольшим значением в XPath - PullRequest
0 голосов
/ 18 апреля 2020

У меня XML около P C компонентов, и мне нужно получить самый дорогой. Таким образом, в этом случае мне нужно получить узел с наибольшим значением (ценой).

XML:

<products>
  <product>
    <name>Motherboard</name>
    <price>150</price>
  </product>
  <product>
    <name>CPU</name>
    <price>300</price>
  </product>
  <product>
    <name>RAM</name>
    <price>45</price>
  </product>
</products>

Это то, что я пробовал до сих пор:

Возвращает 300, что является правильным:

max(/products/product/price)

Результат:

enter image description here

Но когда я пытаюсь получить самый дорогой продукт, выражение, которое я использую для его достижения, не работает:

/products/product[max(price)]

Результат:

enter image description here

Ожидаемый результат должен быть следующим:

<product>
  <name>CPU</name>
  <price>300</price>
</product>

Я использую этот онлайн-инструмент

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 18 апреля 2020
 products/product[price= max(/products/product/price)]

сделает:)

0 голосов
/ 19 апреля 2020

XPath 1.0 решение:

//product[not(price<//price)]

https://codebeautify.org/Xpath-Tester

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...