Xpath с помощью функции start-with - PullRequest
30 голосов
/ 18 апреля 2011

Я пишу Java на Android для извлечения данных из файла XML, но у меня возникла проблема.Рассмотрим этот XML:

<ITEM>
   <REVENUE_YEAR>2554-02</REVENUE_YEAR>
   <REGION>Central</REGION>
</ITEM>
<ITEM>
  <REVENUE_YEAR>2552-02</REVENUE_YEAR>
  <REGION>Central</REGION>
</ITEM>
<ITEM>
  <REVENUE_YEAR>2552-03</REVENUE_YEAR>
  <REGION>Central</REGION>
</ITEM>

Как я могу получить все элементы за годы, начиная с 2552. Я попытался:

//REVENUE_YEAR[starts-with(.,'2552')]/text()

Это работает, но когда я попытался:

//REVENUE_YEAR[starts-with(.,'2552')]/REGION/text() 

это не работает.

Ответы [ 3 ]

46 голосов
/ 18 апреля 2011

Использование:

/*/ITEM[starts-with(REVENUE_YEAR,'2552')]/REGION

Примечание : Если ваш основной язык не может обработать экземпляр элемента как результат, не используйте текстовые узлы специально в модели данных со смешанным содержимым. Не начинайте выражения с оператора //, если схема хорошо известна.

5 голосов
/ 22 июля 2013

Использование:

//REVENUE_YEAR[starts-with(.,'2552')]/../REGION/text() 
4 голосов
/ 18 ноября 2015

Попробуйте это

//ITEM/*[starts-with(text(),'2552')]/following-sibling::*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...