XPathNavigator.MoveToNext Yöntem

Tanım

öğesini XPathNavigator geçerli düğümün bir sonraki eşdüzey düğümüne taşır.

Aşırı Yüklemeler

MoveToNext()

Türetilmiş bir sınıfta geçersiz kılındığında, öğesini XPathNavigator geçerli düğümün bir sonraki eşdüzey düğümüne taşır.

MoveToNext(XPathNodeType)

öğesini XPathNavigator , belirtilen düğümle eşleşen geçerli düğümün bir sonraki eşdüzey düğümüne XPathNodeType taşır.

MoveToNext(String, String)

yerel XPathNavigator adı ve ad alanı URI'sini belirtilen bir sonraki eşdüzey düğüme taşır.

MoveToNext()

Türetilmiş bir sınıfta geçersiz kılındığında, öğesini XPathNavigator geçerli düğümün bir sonraki eşdüzey düğümüne taşır.

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

Döndürülenler

Boolean

true sonraki XPathNavigator eşdüzey düğüme başarıyla taşınırsa; aksi takdirde, false daha fazla eşdüzey düğüm yoksa veya şu anda bir öznitelik düğümünde konumlandırıldıysa XPathNavigator . ise false, öğesinin XPathNavigator konumu değişmez.

Örnekler

Aşağıdaki örnek, düğüm ağacı üzerinde yinelemeli olarak yinelenir ve öğe ve metin düğümleri hakkındaki bilgileri görüntüler.

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);
       }
    }
}
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

Örnek, dosyayı giriş olarak alır books.xml .

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

Ayrıca bkz.

Şunlara uygulanır

MoveToNext(XPathNodeType)

öğesini XPathNavigator , belirtilen düğümle eşleşen geçerli düğümün bir sonraki eşdüzey düğümüne XPathNodeType taşır.

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

Parametreler

type
XPathNodeType

XPathNodeType Taşınacak eşdüzey düğümün.

Döndürülenler

Boolean

true sonraki XPathNavigator eşdüzey düğüme başarıyla taşınırsa; aksi takdirde, false daha fazla eşdüzey düğüm yoksa veya şu anda bir öznitelik düğümünde konumlandırıldıysa XPathNavigator . ise false, öğesinin XPathNavigator konumu değişmez.

Açıklamalar

yönteminin MoveToNext dönüş değeri, geçerli düğümün ve XPathNodeType taşınacak bir sonraki eşdüzey düğümün değerine bağlıdırXPathNodeType.

Aşağıdaki tabloda, taşınabilecekleri farklı XPathNodeType düğümler ve eşdüzey düğümler gösterilmektedir.

Geçerli Düğümün XPathNodeType değeri Eşdüzey Düğümün XPathNodeType'i
Element Element, ProcessingInstruction, Commentveya Text.
Text Element, ProcessingInstruction, Commentveya Text.
ProcessingInstruction Element, ProcessingInstruction, Commentveya Text.
Comment Element, ProcessingInstruction, Commentveya Text.
Diğer XPathNodeType tüm değerler Yok.

Şunlara uygulanır

MoveToNext(String, String)

yerel XPathNavigator adı ve ad alanı URI'sini belirtilen bir sonraki eşdüzey düğüme taşır.

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

Parametreler

localName
String

Taşınacak bir sonraki eşdüzey düğümün yerel adı.

namespaceURI
String

Taşınacak bir sonraki eşdüzey düğümün ad alanı URI'si.

Döndürülenler

Boolean

true sonraki XPathNavigator eşdüzey düğüme başarıyla taşınırsa; false daha fazla eşdüzey düğüm yoksa veya şu anda bir öznitelik düğümünde konumlandırıldıysa XPathNavigator . ise false, öğesinin XPathNavigator konumu değişmez.

Şunlara uygulanır