2010-07-14 104 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

相关问题