Xpath с использованием функции start-with
Я пишу 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()
он не работает.
Ответы
Ответ 1
Использование:
/*/ITEM[starts-with(REVENUE_YEAR,'2552')]/REGION
Примечание. Если ваш язык хоста не может обрабатывать экземпляр экземпляра в качестве результата, не используйте текстовые узлы специально в модели данных смешанного контента. Не запускайте выражения с помощью оператора //
, когда схема хорошо известна.
Ответ 2
Использование:
//REVENUE_YEAR[starts-with(.,'2552')]/../REGION/text()
Ответ 3
Попробуйте это
//ITEM/*[starts-with(text(),'2552')]/following-sibling::*