2013-11-04 52 views
1

我正在嘗試使用C#中的XPath查詢解析一些XML數據。但我的查詢沒有找到我正在尋找的元素(它什麼也沒找到)。查找XPath查詢特定元素失敗

我的XPath查詢有什麼問題? following-sibling的語法不正確嗎?如何編輯我的XPath以找到正確的value元素?

<attributes> 
    <real> 
    <name>cover rl</name> 
    <value>89.87414122</value> 
    </real> 
    <real> 
    <name>pit depth</name> 
    <value>2.35620671</value> <!-- This is the value I need --> 
    </real> 
<attributes> 

我的XPath查詢失敗:

ns:attributes/real/name[text() = 'pit depth']/following-sibling::value 
+0

請加入語言和實際的代碼示例 - 所有的語言/庫有他們自己的處理方式名稱空間前綴/聲明。 (還不清楚爲什麼你甚至需要一個給定的XML)。 –

回答

1

你靠近。大多是擺脫虛假ns:命名空間前綴。另外請注意,您的樣品輸入XML應該關閉</attributes>元素,而不是另一個開口<attributes>元素

所以,這個XPath結束:

/attributes/real/name[. = 'pit depth']/following-sibling::value 

將產生:

<value>2.35620671</value> 

根據您的要求。

如果你只想要value元素的內容:

/attributes/real/name[. = 'pit depth']/following-sibling::value/text() 

將產生:

2.35620671