XPathNavigator.MoveToFollowing Method

Definition

Moves the XPathNavigator to the specified element in document order.

Overloads

MoveToFollowing(XPathNodeType, XPathNavigator)

Moves the XPathNavigator to the following element of the XPathNodeType specified, to the boundary specified, in document order.

MoveToFollowing(String, String, XPathNavigator)

Moves the XPathNavigator to the element with the local name and namespace URI specified, to the boundary specified, in document order.

MoveToFollowing(XPathNodeType)

Moves the XPathNavigator to the following element of the XPathNodeType specified in document order.

MoveToFollowing(String, String)

Moves the XPathNavigator to the element with the local name and namespace URI specified in document order.

MoveToFollowing(XPathNodeType, XPathNavigator)

Moves the XPathNavigator to the following element of the XPathNodeType specified, to the boundary specified, in document order.

public:
 virtual bool MoveToFollowing(System::Xml::XPath::XPathNodeType type, System::Xml::XPath::XPathNavigator ^ end);
public virtual bool MoveToFollowing (System.Xml.XPath.XPathNodeType type, System.Xml.XPath.XPathNavigator end);
abstract member MoveToFollowing : System.Xml.XPath.XPathNodeType * System.Xml.XPath.XPathNavigator -> bool
override this.MoveToFollowing : System.Xml.XPath.XPathNodeType * System.Xml.XPath.XPathNavigator -> bool
Public Overridable Function MoveToFollowing (type As XPathNodeType, end As XPathNavigator) As Boolean

Parameters

type
XPathNodeType

The XPathNodeType of the element. The XPathNodeType cannot be Attribute or Namespace.

end
XPathNavigator

The XPathNavigator object positioned on the element boundary which the current XPathNavigator will not move past while searching for the following element.

Returns

true if the XPathNavigator moved successfully; otherwise, false.

Examples

In the following example, the XPathNavigator is moved from the root of the contosoBooks.xml file to the following price element. A clone of the XPathNavigator object is made using the Clone method. The cloned XPathNavigator, positioned on the price element, will be used as a boundary. Changes in the position of the cloned XPathNavigator do not affect the original XPathNavigator. The original XPathNavigator is moved back to the root of the contosoBooks.xml file using the MoveToRoot method. The title and first and last name of the author are retrieved using the MoveToFollowing method and an XPathNodeType of Text. The MoveToFollowing method will return true until the price element boundary is reached.

    XPathDocument^ document = gcnew XPathDocument("contosoBooks.xml");
    XPathNavigator^ navigator = document->CreateNavigator();

    navigator->MoveToFollowing("price", "http://www.contoso.com/books");
    XPathNavigator^ boundary = navigator->Clone();

    navigator->MoveToRoot();

while (navigator->MoveToFollowing(XPathNodeType::Text, boundary))
    {
        Console::WriteLine(navigator->OuterXml);
    }
XPathDocument document = new XPathDocument("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToFollowing("price", "http://www.contoso.com/books");
XPathNavigator boundary = navigator.Clone();

navigator.MoveToRoot();

while (navigator.MoveToFollowing(XPathNodeType.Text, boundary))
{
    Console.WriteLine(navigator.OuterXml);
}
Dim document As XPathDocument = New XPathDocument("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

navigator.MoveToFollowing("price", "http://www.contoso.com/books")
Dim boundary As XPathNavigator = navigator.Clone()

navigator.MoveToRoot()

While navigator.MoveToFollowing(XPathNodeType.Text, boundary)
    Console.WriteLine(navigator.OuterXml)
End While

The example takes the contosoBooks.xml file as an input.

  
<?xml version="1.0" encoding="utf-8" ?>  
<bookstore xmlns="http://www.contoso.com/books">  
    <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>  
  

Remarks

  • The MoveToFollowing method does not move to attribute or namespace nodes. If the XPathNodeType parameter value is Attribute or Namespace, the MoveToFollowing method returns false and the position of the XPathNavigator is unchanged.

  • If the XPathNavigator boundary passed as a parameter is not positioned after the position of the current XPathNavigator it is ignored.

  • If XPathNavigator boundary passed as a parameter is null the next following node with the specified XPathNodeType is located in document order.

  • The MoveToFollowing methods cannot be used to move to attribute or namespace nodes. If the XPathNavigator boundary passed as a parameter is positioned over an attribute or namespace node, it is equivalent to the XPathNavigator boundary parameter having been positioned on the first child node of its parent element. This ensures that the parent element of the attribute or namespace node that the XPathNavigator boundary parameter is positioned on can be matched by this method.

  • If the MoveToFollowing method returns false, the position of the XPathNavigator is unchanged.

MoveToFollowing(String, String, XPathNavigator)

Moves the XPathNavigator to the element with the local name and namespace URI specified, to the boundary specified, in document order.

public:
 virtual bool MoveToFollowing(System::String ^ localName, System::String ^ namespaceURI, System::Xml::XPath::XPathNavigator ^ end);
public virtual bool MoveToFollowing (string localName, string namespaceURI, System.Xml.XPath.XPathNavigator end);
abstract member MoveToFollowing : string * string * System.Xml.XPath.XPathNavigator -> bool
override this.MoveToFollowing : string * string * System.Xml.XPath.XPathNavigator -> bool
Public Overridable Function MoveToFollowing (localName As String, namespaceURI As String, end As XPathNavigator) As Boolean

Parameters

localName
String

The local name of the element.

namespaceURI
String

The namespace URI of the element.

end
XPathNavigator

The XPathNavigator object positioned on the element boundary which the current XPathNavigator will not move past while searching for the following element.

Returns

true if the XPathNavigator moved successfully; otherwise, false.

Examples

In the following example, the XPathNavigator is moved from the root of the contosoBooks.xml file to the following book element. A clone of the XPathNavigator object is made using the Clone method and is moved from the book element to the following first-name element. The cloned XPathNavigator, positioned on the first-name element, will be used as a boundary. Changes in the position of the cloned XPathNavigator do not affect the original XPathNavigator. The original XPathNavigator then attempts to move to the following price element using the MoveToFollowing method with the boundary passed as a parameter. This move fails because the following price element is beyond the boundary. The original XPathNavigator then attempts to move to the following title element which is before the boundary using the same method and succeeds.

XPathDocument^ document = gcnew XPathDocument("contosoBooks.xml");
XPathNavigator^ navigator = document->CreateNavigator();

navigator->MoveToFollowing("book", "http://www.contoso.com/books");
XPathNavigator^ boundary = navigator->Clone();
boundary->MoveToFollowing("first-name", "http://www.contoso.com/books");

navigator->MoveToFollowing("price", "http://www.contoso.com/books", boundary);

Console::WriteLine("Position (after boundary): {0}", navigator->Name);
Console::WriteLine(navigator->OuterXml);

navigator->MoveToFollowing("title", "http://www.contoso.com/books", boundary);

Console::WriteLine("Position (before boundary): {0}", navigator->Name);
Console::WriteLine(navigator->OuterXml);
XPathDocument document = new XPathDocument("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToFollowing("book", "http://www.contoso.com/books");
XPathNavigator boundary = navigator.Clone();
boundary.MoveToFollowing("first-name", "http://www.contoso.com/books");

navigator.MoveToFollowing("price", "http://www.contoso.com/books", boundary);

Console.WriteLine("Position (after boundary): {0}", navigator.Name);
Console.WriteLine(navigator.OuterXml);

navigator.MoveToFollowing("title", "http://www.contoso.com/books", boundary);

Console.WriteLine("Position (before boundary): {0}", navigator.Name);
Console.WriteLine(navigator.OuterXml);
Dim document As XPathDocument = New XPathDocument("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

navigator.MoveToFollowing("book", "http://www.contoso.com/books")
Dim boundary As XPathNavigator = navigator.Clone()
boundary.MoveToFollowing("first-name", "http://www.contoso.com/books")

navigator.MoveToFollowing("price", "http://www.contoso.com/books", boundary)

Console.WriteLine("Position (after boundary): {0}", navigator.Name)
Console.WriteLine(navigator.OuterXml)

navigator.MoveToFollowing("title", "http://www.contoso.com/books", boundary)

Console.WriteLine("Position (before boundary): {0}", navigator.Name)
Console.WriteLine(navigator.OuterXml)

The example takes the contosoBooks.xml file as an input.

  
<?xml version="1.0" encoding="utf-8" ?>  
<bookstore xmlns="http://www.contoso.com/books">  
    <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>  
  

Remarks

  • If the XPathNavigator boundary passed as a parameter is not positioned after the position of the current XPathNavigator it is ignored.

  • If the XPathNavigator boundary parameter is null, the following element with the local name and namespace URI specified is located in document order.

  • The MoveToFollowing methods cannot be used to move to attribute or namespace nodes. If the XPathNavigator boundary passed as a parameter is positioned over an attribute or namespace node, it is equivalent to the XPathNavigator boundary parameter having been positioned on the first child node of its parent element. This ensures that the parent element of the attribute or namespace node that the XPathNavigator boundary parameter is positioned on can be matched by this method.

  • If the MoveToFollowing method returns false, the position of the XPathNavigator is unchanged.

MoveToFollowing(XPathNodeType)

Moves the XPathNavigator to the following element of the XPathNodeType specified in document order.

public:
 virtual bool MoveToFollowing(System::Xml::XPath::XPathNodeType type);
public virtual bool MoveToFollowing (System.Xml.XPath.XPathNodeType type);
abstract member MoveToFollowing : System.Xml.XPath.XPathNodeType -> bool
override this.MoveToFollowing : System.Xml.XPath.XPathNodeType -> bool
Public Overridable Function MoveToFollowing (type As XPathNodeType) As Boolean

Parameters

type
XPathNodeType

The XPathNodeType of the element. The XPathNodeType cannot be Attribute or Namespace.

Returns

true if the XPathNavigator moved successfully; otherwise, false.

Examples

In the following example, the XPathNavigator is moved from the root of the contosoBooks.xml file to the following bookstore element.

    XPathDocument^ document = gcnew XPathDocument("contosoBooks.xml");
    XPathNavigator^ navigator = document->CreateNavigator();

navigator->MoveToFollowing(XPathNodeType::Element);

    Console::WriteLine("Position: {0}", navigator->Name);
    Console::WriteLine(navigator->OuterXml);
XPathDocument document = new XPathDocument("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToFollowing(XPathNodeType.Element);

Console.WriteLine("Position: {0}", navigator.Name);
Console.WriteLine(navigator.OuterXml);
Dim document As XPathDocument = New XPathDocument("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

navigator.MoveToFollowing(XPathNodeType.Element)

Console.WriteLine("Position: {0}", navigator.Name)
Console.WriteLine(navigator.OuterXml)

The example takes the contosoBooks.xml file as an input.

  
<?xml version="1.0" encoding="utf-8" ?>  
<bookstore xmlns="http://www.contoso.com/books">  
    <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>  
  

Remarks

MoveToFollowing(String, String)

Moves the XPathNavigator to the element with the local name and namespace URI specified in document order.

public:
 virtual bool MoveToFollowing(System::String ^ localName, System::String ^ namespaceURI);
public virtual bool MoveToFollowing (string localName, string namespaceURI);
abstract member MoveToFollowing : string * string -> bool
override this.MoveToFollowing : string * string -> bool
Public Overridable Function MoveToFollowing (localName As String, namespaceURI As String) As Boolean

Parameters

localName
String

The local name of the element.

namespaceURI
String

The namespace URI of the element.

Returns

true if the XPathNavigator moved successfully; otherwise, false.

Examples

In the following example, the XPathNavigator is moved from the root of the contosoBooks.xml file to the first price element.

XPathDocument^ document = gcnew XPathDocument("contosoBooks.xml");
XPathNavigator^ navigator = document->CreateNavigator();

navigator->MoveToFollowing("price", "http://www.contoso.com/books");

Console::WriteLine("Position: {0}", navigator->Name);
Console::WriteLine(navigator->OuterXml);
XPathDocument document = new XPathDocument("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToFollowing("price", "http://www.contoso.com/books");

Console.WriteLine("Position: {0}", navigator.Name);
Console.WriteLine(navigator.OuterXml);
Dim document As XPathDocument = New XPathDocument("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

navigator.MoveToFollowing("price", "http://www.contoso.com/books")

Console.WriteLine("Position: {0}", navigator.Name)
Console.WriteLine(navigator.OuterXml)

The example takes the contosoBooks.xml file as an input.

  
<?xml version="1.0" encoding="utf-8" ?>  
<bookstore xmlns="http://www.contoso.com/books">  
    <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>  
  

Remarks

If the MoveToFollowing method returns false, the position of the XPathNavigator is unchanged.

Applies to