Xpath使用start-with函数

时间:2011-04-18 04:15:57

标签: xpath

我在Android上编写Java以从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 个答案:

答案 0 :(得分:46)

使用:

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

注意:除非您的宿主语言无法处理元素实例,否则请勿在混合内容数据模型中专门使用文本节点。当模式众所周知时,不要使用//运算符启动表达式。

答案 1 :(得分:5)

使用:

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

答案 2 :(得分:4)

试试这个

//ITEM/*[starts-with(text(),'2552')]/following-sibling::*