tags:

views:

31

answers:

1

I have XML document which is something like

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

I am trying to get those 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))

In x.Value I get something like "1.02.0"

+1  A: 
Y/Values

selects a single element named Values and child of the element Y that is a child of the top element X.

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

Because the XPath expression selects just a single node, you don't need a foreach...

In x.Value I get something like "1.02.0"

This is exactly what you should get. The value of a node is the concatenation of all of its text-node descendents.

Most probably you want:

Y/Values/double
Dimitre Novatchev
"Because the XPath expression selects just a single node, you don't need a foreach..." - how do I iterate through all children of a selected node?
Bobb
@Bobb: You append to the expression that selects this node `/*` and this will select all element-children of the node. :)
Dimitre Novatchev