Как я могу получить весь атрибут min с XPath? - PullRequest
1 голос
/ 20 мая 2019

Я хочу получить атрибут с помощью XPath.

<?xml version="1.0"?>
<GetTest>
<Result>
<id>10</id>
<name>ABC</name>
</Result>
<Result>
<id>1</id>
<name>DEF</name>
</Result>
<Result>
<id>50</id>
<name>GHI</name>
</Result>
</GetTest>

Теперь я хочу получить 2, потому что идентификатор минимален во втором атрибуте. У кого-нибудь есть идея?

Спасибо

Ответы [ 2 ]

1 голос
/ 20 мая 2019

В XPath 1.0 минимальная идиома:

$node-set[not(. > $node-set)]

"Выберите узел не больше, чем любой другой"

Итак,чтобы получить относительную позицию, вам нужно сосчитать братьев и сестер, таких как:

count(/GetTest/Result/id[not(. > ../../Result/id)]/../preceding-sibling::Result) + 1

Регистрация http://www.xpathtester.com/xpath/aab60fddde5c48b013efff791b9f11c9

0 голосов
/ 20 мая 2019

Это проще всего с XPath-2.0.
Попробуйте это выражение

/GetTest/Result[id = min(/GetTest/Result/id)]

, которое выбирает все элементы Result с минимальным значением.

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