XPathNavigator::MoveToNext Method ()
.NET Framework (current version)
When overridden in a derived class, moves the XPathNavigator to the next sibling node of the current node.
Assembly: System.Xml (in System.Xml.dll)
Return Value
Type: System::Booleantrue if the XPathNavigator is successful moving to the next sibling node; otherwise, false if there are no more siblings or if the XPathNavigator is currently positioned on an attribute node. If false, the position of the XPathNavigator is unchanged.
The following example iterates over the node tree recursively, and displays information about element and text nodes.
static void XPathNavigatorMethods_MoveToNext() { XPathDocument^ document = gcnew XPathDocument("books.xml"); XPathNavigator^ navigator = document->CreateNavigator(); XPathNodeIterator^ nodeset = navigator->Select("descendant::book[author/last-name='Melville']"); while (nodeset->MoveNext()) { // Clone iterator here when working with it. RecursiveWalk(nodeset->Current->Clone()); } } static void RecursiveWalk(XPathNavigator^ navigator) { switch (navigator->NodeType) { case XPathNodeType::Element: if (navigator->Prefix == String::Empty) Console::WriteLine("<{0}>", navigator->LocalName); else Console::Write("<{0}:{1}>", navigator->Prefix, navigator->LocalName); Console::WriteLine("\t" + navigator->NamespaceURI); break; case XPathNodeType::Text: Console::WriteLine("\t" + navigator->Value); break; } if (navigator->MoveToFirstChild()) { do { RecursiveWalk(navigator); } while (navigator->MoveToNext()); navigator->MoveToParent(); if (navigator->NodeType == XPathNodeType::Element) Console::WriteLine("</{0}>", navigator->Name); } else { if (navigator->NodeType == XPathNodeType::Element) { Console::WriteLine("</{0}>", navigator->Name); } } }
The example takes the books.xml file as an input.
<?xml version="1.0" encoding="utf-8" ?> <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>
.NET Framework
Available since 1.1
Silverlight
Available since 4.0
Available since 1.1
Silverlight
Available since 4.0
Show: