2011-05-19 145 views
63
​​

有沒有人可以告訴我如何表達以查找第二個孩子?XPath選擇具有某個屬性值的節點等於某個其他節點的屬性值

這不工作...

"/grand/parent/child[@id=concat('#',/grand/@id)]/@age" 

謝謝。


對不起。表達是好的。我發現我在其他領域遇到了一些問題,而不是表達本身。

+3

你的XPath工作正常,我。 – dogbane 2011-05-19 08:00:51

+3

我也一樣 - [只是在這裏測試](http://www.mizar.dk/XPath/Default.aspx),它選擇第二個子元素。 – 2011-05-19 08:05:17

+1

對......表達方式正確。對不起。我在表達式(名稱空間前綴)和實例文檔中犯了一些錯誤。謝謝。 – 2011-05-19 08:33:06

回答

68

此XPath特定於您提供的代碼段。要選擇編號爲<child>的編號爲#grand,您可以編寫//child[@id='#grand']

爲了讓年齡//child[@id='#grand']/@age

希望這有助於

+1

謝謝你Vaman。它有幫助。我的意思是指一次性評估的表達式('/ grand/@ id')而不是應該首先評估的值('#grand')。 – 2011-05-19 08:43:59

+3

這應該是公認的答案,因爲它比OP的解決方案更容易理解。 – Bashevis 2013-03-06 07:01:04

21

我想這是你想要什麼:

/grand/parent/child[@id="#grand"] 
+2

謝謝MarcoS。我的意思是指一次性評估的表達式('/ grand/@ id')而不是應該首先評估的值('#grand')。 – 2011-05-19 08:44:25

+2

@ jin-kwon:我明白了。所以,你是XPath就好了。 – MarcoS 2011-05-19 08:49:24

相關問題