XPathNavigator.MoveToNext Metódus

Definíció

Áthelyezi az XPathNavigator aktuális csomópont következő testvércsomópontjára.

Túlterhelések

Name Description
MoveToNext()

Ha felül van bírálva egy származtatott osztályban, az XPathNavigator aktuális csomópont következő testvércsomópontja lesz.

MoveToNext(XPathNodeType)

Áthelyezi az XPathNavigator aktuális csomópont következő testvércsomópontjára, amely megfelel a XPathNodeType megadottnak.

MoveToNext(String, String)

Áthelyezi a XPathNavigator következő testvércsomópontra a megadott helyi névvel és névtér URI-val.

MoveToNext()

Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs

Ha felül van bírálva egy származtatott osztályban, az XPathNavigator aktuális csomópont következő testvércsomópontja lesz.

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

Válaszok

true ha a XPathNavigator rendszer sikeresen áttér a következő testvércsomópontra; ellenkező esetben, ha nincs több testvér, false vagy ha a XPathNavigator jelenleg egy attribútumcsomóponton van elhelyezve. Ha false, a pozíció XPathNavigator nem változik.

Példák

Az alábbi példa rekurzív módon hatja át a csomópontfát, és megjeleníti az elem- és szövegcsomópontokra vonatkozó információkat.

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

A példa bemenetként használja a books.xml fájlt.

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

Lásd még

A következőre érvényes:

MoveToNext(XPathNodeType)

Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs

Áthelyezi az XPathNavigator aktuális csomópont következő testvércsomópontjára, amely megfelel a XPathNodeType megadottnak.

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

Paraméterek

type
XPathNodeType

A XPathNodeType testvércsomópont, amelybe át szeretne lépni.

Válaszok

true ha a XPathNavigator rendszer sikeresen áttér a következő testvércsomópontra; ellenkező esetben, ha nincs több testvér, false vagy ha a XPathNavigator jelenleg egy attribútumcsomóponton van elhelyezve. Ha false, a pozíció XPathNavigator nem változik.

Megjegyzések

A metódus visszatérési MoveToNext értéke az XPathNodeType aktuális csomóponttól és a XPathNodeType következő testvércsomóponttól függ.

Az alábbi táblázat a különböző XPathNodeType csomópontokat és a testvércsomópontokat mutatja be, a migrálásukhoz.

Az aktuális csomópont XPathNodeType-típusa Testvércsomópont XPathNodeType-típusa
Element Element, ProcessingInstruction,, Comment vagy Text.
Text Element, ProcessingInstruction,, Comment vagy Text.
ProcessingInstruction Element, ProcessingInstruction,, Comment vagy Text.
Comment Element, ProcessingInstruction,, Comment vagy Text.
Minden más XPathNodeType érték Nincs.

A következőre érvényes:

MoveToNext(String, String)

Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs
Forrás:
XPathNavigator.cs

Áthelyezi a XPathNavigator következő testvércsomópontra a megadott helyi névvel és névtér URI-val.

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

Paraméterek

localName
String

A következő testvércsomópont helyi neve, amelybe át szeretne lépni.

namespaceURI
String

A következő testvércsomópont névterének URI-ja, amelybe át szeretne lépni.

Válaszok

true ha a XPathNavigator rendszer sikeresen áttér a következő testvércsomópontra; false ha nincs több testvér, vagy ha jelenleg XPathNavigator egy attribútumcsomóponton van elhelyezve. Ha false, a pozíció XPathNavigator nem változik.

A következőre érvényes: