2010-07-14 115 views
1

我有XML文檔是像C#的XPathNavigator返回所有值,而不是值的字符串

<X><Y><Values><double>1.0</double><double>2.0</double></Values>... 

我試圖獲取這些值:

toXpath.MoveToRoot(); // the X node name could be different 
toXpath.MoveToFirstChild(); // this should be Y 

string q = "Y/Values"; 
foreach (XPathNavigator x in toXpath.Select(q)) 

在x.Value我得到的東西如 「1.02.0」

+0

這的確是返回值,但它把兩個值成X。在C#中沒有使用xpath,所以我不確定你需要做什麼。 – 2010-07-14 16:19:43

+0

請提供更多信息 – SAK 2010-07-14 18:31:50

+0

我敢打賭,VB.NET程序會發生同樣的情況,這會使.NET XPathNavigator而不是C#XPathNavigator。 – 2010-07-14 22:39:04

回答

1
Y/Values 

選擇名爲Values的單個元素和元素Y的子元素,該子元素是頂級元素X的子元素。

string q = "Y/Values";  
foreach (XPathNavigator x in toXpath.Select(q)) 

因爲XPath表達式選擇只是一個節點,你不需要foreach ...

In x.Value I get something like "1.02.0" 

這正是你應該得到什麼。節點的值是所有文本節點後代的連接。

最大的可能是你想要的:

Y/Values/double 
+0

「因爲XPath表達式只選擇一個節點,所以不需要foreach ...」 - 我如何遍歷選定節點的所有子節點? – 2010-07-15 00:11:09

+1

@Bobb:你可以追加選擇這個節點的表達式'/ *',這將選擇節點的所有元素子元素。 :) – 2010-07-15 00:56:08

相關問題