XPath выбирает последний элемент, если значение имеет дочерний элемент - PullRequest
0 голосов
/ 24 октября 2018

Например, у нас есть следующий XML-файл.Некоторые заказы имеют описания;некоторые не имеют.Как я могу принять последний заказ, в котором есть DESCRIPTION элемент?

<ORDERSINFO>
  <ORDER>
    <NUMBER>168756</NUMBER>
  </ORDER>
  <ORDER>
    <NUMBER>16874</NUMBER>
    <DESCRIPTION>SOCKS</DESCRIPTION>
  </ORDER>
  <ORDER>
    <NUMBER>64971</NUMBER>
    <DESCRIPTION>JIGSAW</DESCRIPTION>
  </ORDER>
  <ORDER>
    <NUMBER>25597</NUMBER>
    <DESCRIPTION>FUEL CANISTER</DESCRIPTION>
  </ORDER>
  <ORDER>
    <NUMBER>31648</NUMBER>
  </ORDER>
</ORDERSINFO>

1 Ответ

0 голосов
/ 24 октября 2018

Этот XPath,

/ORDERSINFO/ORDER[DESCRIPTION][last()]

выберет последний ORDER элемент, который имеет DESCRIPTION,

<ORDER>
  <NUMBER>25597</NUMBER>
  <DESCRIPTION>FUEL CANISTER</DESCRIPTION>
</ORDER>

в соответствии с запросом.


Если вы хотите выбрать последний DESCRIPTION с содержимым, которое не является пустым или пробелом, используйте вместо этого XPath:

/ORDERSINFO/ORDER[DESCRIPTION[normalize-space()]][last()]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...