2013-04-25 34 views
1

隨着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將始終是第二節點。)

+0

你的XML是無效的。它包含一個額外的未關閉元素 – Garett 2013-04-25 11:50:21

+0

感謝,固定爲清楚的緣故:-) – 2013-04-25 13:28:40

回答

2

如何執行以下操作:

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

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

我的第二個工作,感謝 – 2013-04-25 13:29:01

1

簡單/短

/*/*[id = 3]/value 
+0

+1尼斯較短的例子@Dimitre。我仍然喜歡使用顯式路徑語法,但這只是我的偏好。 – Garett 2013-04-25 16:02:24

+0

@Garett,不客氣。完整路徑的位置步驟適合教育目的。使用上面的縮寫語法不僅僅是「另一種語法」 - 它的評估效率稍高一些(因爲元素名稱未經過驗證)。 – 2013-04-25 17:25:35

相關問題