如何获得一个特定的节点值与xpath时id是在元素而不是属性?
随着XPath的/levels/level[@id="3"]/value
我可以得到电平值其中id = 3这样的:如何获得一个特定的节点值与xpath时id是在元素而不是属性?
<levels>
<level id="2">
<value>25</value>
</level>
<level id="3">
<value>33</value>
</level>
<level id="4">
<value>44</value>
</level>
</levels>
但我读XML没有属性的格式如下:
<levels>
<level>
<id>2</id>
<value>25</value>
</level>
<level>
<id>3</id>
<value>33</value>
</level>
<level>
<id>4</id>
<value>44</value>
</level>
</levels>
是什么第二个XML块的等价xpath将获得id = 3的级别值?(它不保证该ID = 3将始终是第二节点。)
如何执行以下操作:
/levels/level[id/text() = "3"]/value
或
/levels/level[id/. = "3"]/value
我的第二个工作,感谢 – 2013-04-25 13:29:01
简单/短:
/*/*[id = 3]/value
+1尼斯较短的例子@Dimitre。我仍然喜欢使用显式路径语法,但这只是我的偏好。 – Garett 2013-04-25 16:02:24
@Garett,不客气。完整路径的位置步骤适合教育目的。使用上面的缩写语法不仅仅是“另一种语法” - 它的评估效率稍高一些(因为元素名称未经过验证)。 – 2013-04-25 17:25:35
你的XML是无效的。它包含一个额外的未关闭元素 –
Garett
2013-04-25 11:50:21
感谢,固定为清楚的缘故:-) – 2013-04-25 13:28:40