当id在元素而不是属性时,如何使用xpath获取特定的节点值?

时间:2013-04-25 11:30:33

标签: xml xpath

使用xpath /levels/level[@id="3"]/value我可以得到id = 3的level值,如下所示:

<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是什么,它将获得level = 3的值?(不能保证id = 3将永远是第二个节点。)< / p>

2 个答案:

答案 0 :(得分:2)

以下内容如何:

/levels/level[id/text() = "3"]/value

/levels/level[id/. = "3"]/value

答案 1 :(得分:1)

<强>简单/短

/*/*[id = 3]/value