Xpath使用start-with函数

imb*_*ner 33 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>
Run Code Online (Sandbox Code Playgroud)

如何在2552年开始的年份中获得所有元素.我试过:

//REVENUE_YEAR[starts-with(.,'2552')]/text()
Run Code Online (Sandbox Code Playgroud)

它有效,但当我尝试时:

//REVENUE_YEAR[starts-with(.,'2552')]/REGION/text() 
Run Code Online (Sandbox Code Playgroud)

它不起作用.

小智 48

使用:

/*/ITEM[starts-with(REVENUE_YEAR,'2552')]/REGION
Run Code Online (Sandbox Code Playgroud)

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


Div*_*tel 6

使用:

//REVENUE_YEAR[starts-with(.,'2552')]/../REGION/text() 
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个

//ITEM/*[starts-with(text(),'2552')]/following-sibling::*
Run Code Online (Sandbox Code Playgroud)

  • 像[this](http://stackoverflow.com/a/5705866/1677912)这样的带解释的答案比([]](http:// stackoverflow)这样的简单“尝试”效果更好(并获得更多投票)。 com / a / 17786221/1677912)。 (7认同)