XPathNavigator.MoveToNext Methode

Definition

Verschiebt den XPathNavigator auf den nächsten Geschwisterknoten des aktuellen Knotens.

Überlädt

Name Beschreibung
MoveToNext()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der XPathNavigator Nächste gleichgeordnete Knoten des aktuellen Knotens verschoben.

MoveToNext(XPathNodeType)

Verschiebt den XPathNavigator knoten zum nächsten gleichgeordneten Knoten des aktuellen Knotens, der mit dem XPathNodeType angegebenen Knoten übereinstimmt.

MoveToNext(String, String)

Verschiebt den XPathNavigator nächsten gleichgeordneten Knoten mit dem angegebenen lokalen Namen und namespace-URI.

MoveToNext()

Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der XPathNavigator Nächste gleichgeordnete Knoten des aktuellen Knotens verschoben.

public:
 abstract bool MoveToNext();
public abstract bool MoveToNext();
abstract member MoveToNext : unit -> bool
Public MustOverride Function MoveToNext () As Boolean

Gibt zurück

true wenn der XPathNavigator Wechsel zum nächsten gleichgeordneten Knoten erfolgreich ist, andernfalls, false wenn es keine weiteren gleichgeordneten Elemente gibt oder die XPathNavigator aktuell auf einem Attributknoten positioniert ist. Wenn falsedie Position der Datei XPathNavigator unverändert ist.

Beispiele

Das folgende Beispiel durchläuft rekursiv die Knotenstruktur und zeigt Informationen zu Element- und Textknoten an.

static void XPathNavigatorMethods_MoveToNext()
{

    XPathDocument document = new 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());
    }
}

public static void RecursiveWalk(XPathNavigator navigator)
{
    switch (navigator.NodeType)
    {
        case XPathNodeType.Element:
            if (string.IsNullOrEmpty(navigator.Prefix))
                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);
        }
    }
}
Shared Sub XPathNavigatorMethods_MoveToNext()

    Dim document As XPathDocument = New XPathDocument("books.xml")
    Dim navigator As XPathNavigator = document.CreateNavigator()
    Dim nodeset As XPathNodeIterator = navigator.Select("descendant::book[author/last-name='Melville']")

    While nodeset.MoveNext()
        ' Clone iterator here when working with it.
        RecursiveWalk(nodeset.Current.Clone())
    End While

End Sub

Shared Sub RecursiveWalk(ByVal navigator As XPathNavigator)

    Select Case navigator.NodeType
        Case XPathNodeType.Element
            If navigator.Prefix = String.Empty Then
                Console.WriteLine("<{0}>", navigator.LocalName)
            Else
                Console.Write("<{0}:{1}>", navigator.Prefix, navigator.LocalName)
                Console.WriteLine(vbTab + navigator.NamespaceURI)
            End If
        Case XPathNodeType.Text
            Console.WriteLine(vbTab + navigator.Value)
    End Select

    If navigator.MoveToFirstChild() Then
        Do
            RecursiveWalk(navigator)
        Loop While (navigator.MoveToNext())

        navigator.MoveToParent()
        If (navigator.NodeType = XPathNodeType.Element) Then
            Console.WriteLine("</{0}>", navigator.Name)
        End If
    Else
        If navigator.NodeType = XPathNodeType.Element Then
            Console.WriteLine("</{0}>", navigator.Name)
        End If
    End If

End Sub

Im Beispiel wird die books.xml Datei als Eingabe verwendet.

<?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>

Weitere Informationen

Gilt für:

MoveToNext(XPathNodeType)

Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs

Verschiebt den XPathNavigator knoten zum nächsten gleichgeordneten Knoten des aktuellen Knotens, der mit dem XPathNodeType angegebenen Knoten übereinstimmt.

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

Parameter

type
XPathNodeType

Der XPathNodeType gleichgeordnete Knoten, zu dem verschoben werden soll.

Gibt zurück

true wenn der XPathNavigator Wechsel zum nächsten gleichgeordneten Knoten erfolgreich ist, andernfalls, false wenn es keine weiteren gleichgeordneten Elemente gibt oder die XPathNavigator aktuell auf einem Attributknoten positioniert ist. Wenn falsedie Position der Datei XPathNavigator unverändert ist.

Hinweise

Der Rückgabewert der MoveToNext Methode hängt vom XPathNodeType aktuellen Knoten und dem XPathNodeType nächsten gleichgeordneten Knoten ab, zu dem verschoben werden soll.

In der folgenden Tabelle sind die verschiedenen XPathNodeType Knoten und die gleichgeordneten Knoten aufgeführt, zu der sie wechseln können.

XPathNodeType des aktuellen Knotens XPathNodeType des gleichgeordneten Knotens
Element Element, ProcessingInstruction, Comment, oder Text.
Text Element, ProcessingInstruction, Comment, oder Text.
ProcessingInstruction Element, ProcessingInstruction, Comment, oder Text.
Comment Element, ProcessingInstruction, Comment, oder Text.
Alle anderen XPathNodeType Werte Keiner.

Gilt für:

MoveToNext(String, String)

Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs

Verschiebt den XPathNavigator nächsten gleichgeordneten Knoten mit dem angegebenen lokalen Namen und namespace-URI.

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

Parameter

localName
String

Der lokale Name des nächsten gleichgeordneten Knotens, zu dem verschoben werden soll.

namespaceURI
String

Der Namespace-URI des nächsten gleichgeordneten Knotens, zu dem verschoben werden soll.

Gibt zurück

true wenn der XPathNavigator Wechsel zum nächsten gleichgeordneten Knoten erfolgreich ist; false wenn es keine weiteren gleichgeordneten Elemente gibt oder die XPathNavigator positioniert sich derzeit auf einem Attributknoten befindet. Wenn falsedie Position der Datei XPathNavigator unverändert ist.

Gilt für: