【发布时间】:2011-05-08 04:21:07
【问题描述】:
全部 -
为了破解这个问题,我已经搜索和修改了几个小时,但我仍然遇到问题。我有以下 XML 数据:
<game id="2009/05/02/arimlb-milmlb-1" pk="244539">
<team id="109" name="Arizona" home_team="false">
<event number="9" inning="1" description="Felipe Lopez doubles to left fielder Chris Duffy. "/>
<event number="15" inning="1" description="Augie Ojeda flies out to center fielder Mike Cameron. "/>
<event number="23" inning="1" description="Chad Tracy doubles to right fielder Joe Sanchez. "/>
<event number="52" inning="2" description="Mark Reynolds lines out to left fielder Chris Duffy. "/>
<!-- more data here -->
</team>
</game>
我正在尝试获取在 description 属性的值中包含文本“doubles”的事件节点的总数。这是我到目前为止一直在尝试的方法,但无济于事(irb 抛出错误):
"/game/team/event/@description[matches(.,' doubles ')]"
因为我只是想匹配描述属性值的片段,所以可以使用 XPath 2.0 函数“匹配”,对吗?如果是这样,我做错了什么?
提前感谢您的帮助!
【问题讨论】:
-
好问题,+1。请参阅我的答案以获得完整、简短且简单的单行 XPath 表达式解决方案:)
-
Mikecito - 我使用的是 Java 1.6,但我也使用 Ruby irb 进行开发和调试,例如 XPath。也就是说,我首先尝试在 irb 中使用 XPath 扫描文件,一旦我有一个得到我想要的 XPath,我会将它转移到我的 Java 代码中。
-
Dimitre - 您列出的 XPath 最终运行良好。我会在您的帖子下方单独发表评论。
标签: regex xpath attributes