XPathNavigator.MoveToNext Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
öğ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
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
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
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.