Boppity Bop
Boppity Bop

Reputation: 10463

C# XPathNavigator returns string of all values instead of values

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"

Upvotes: 1

Views: 1565

Answers (1)

Dimitre Novatchev
Dimitre Novatchev

Reputation: 243449

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

Upvotes: 1

Related Questions