N
nicholas
Hi folks,
I'm diving into XPathNavigator.SelectDescendants method. There's a boolean
type parameter matchSelf, and MSDN says "To include the context node in the
selection, true; otherwise, false". But I don't understand how to use it.
The sample code in MSDN is below, but I didn't find any difference of the
result while setting the value of this parameter to true and false
inspectively. So could anybody show me how to use the parameter to get
different result?
Any reply is appreciated!
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathNodeIterator nodes = navigator.Select("/bookstore/book");
XPathNavigator nodesNavigator = nodes.Current;
XPathNodeIterator nodesText =
nodesNavigator.SelectDescendants(XPathNodeType.Text, false);
while (nodesText.MoveNext())
{
Console.Write(nodesText.Current.Name);
Console.WriteLine(nodesText.Current.Value);
}
<bookstore>
<book genre="autobiography" publicationdate="1981-03-22"
ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15"
ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
I'm diving into XPathNavigator.SelectDescendants method. There's a boolean
type parameter matchSelf, and MSDN says "To include the context node in the
selection, true; otherwise, false". But I don't understand how to use it.
The sample code in MSDN is below, but I didn't find any difference of the
result while setting the value of this parameter to true and false
inspectively. So could anybody show me how to use the parameter to get
different result?
Any reply is appreciated!
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathNodeIterator nodes = navigator.Select("/bookstore/book");
XPathNavigator nodesNavigator = nodes.Current;
XPathNodeIterator nodesText =
nodesNavigator.SelectDescendants(XPathNodeType.Text, false);
while (nodesText.MoveNext())
{
Console.Write(nodesText.Current.Name);
Console.WriteLine(nodesText.Current.Value);
}
<bookstore>
<book genre="autobiography" publicationdate="1981-03-22"
ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15"
ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>