XPathNavigator.MoveToNext Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přesune XPathNavigator na další sourozenecký uzel aktuálního uzlu.
Přetížení
| Name | Description |
|---|---|
| MoveToNext() |
Při přepsání v odvozené třídě přesune XPathNavigator na další uzel na stejné úrovni aktuálního uzlu. |
| MoveToNext(XPathNodeType) |
XPathNavigator Přesune na další uzel na stejné úrovni aktuálního uzlu, který odpovídá zadanému XPathNodeType uzlu. |
| MoveToNext(String, String) |
Přesune na XPathNavigator další uzel na stejné úrovni se zadaným místním názvem a identifikátorem URI oboru názvů. |
MoveToNext()
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
Při přepsání v odvozené třídě přesune XPathNavigator na další uzel na stejné úrovni aktuálního uzlu.
public:
abstract bool MoveToNext();
public abstract bool MoveToNext();
abstract member MoveToNext : unit -> bool
Public MustOverride Function MoveToNext () As Boolean
Návraty
true
XPathNavigator pokud se úspěšně přesune na další uzel na stejné úrovni. false V opačném případě pokud už nejsou na stejné úrovni nebo pokud XPathNavigator je aktuálně umístěn na uzlu atributu. Pokud falsese pozice objektu XPathNavigator nezmění.
Příklady
Následující příklad iteruje strom uzlu rekurzivně a zobrazí informace o elementech a textových uzlech.
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
Příklad vezme books.xml soubor jako vstup.
<?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>
Viz také
Platí pro
MoveToNext(XPathNodeType)
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
XPathNavigator Přesune na další uzel na stejné úrovni aktuálního uzlu, který odpovídá zadanému XPathNodeType uzlu.
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
Parametry
- type
- XPathNodeType
Uzel XPathNodeType na stejné úrovni, na který se chcete přesunout.
Návraty
true
XPathNavigator pokud se úspěšně přesune na další uzel na stejné úrovni. false V opačném případě pokud už nejsou na stejné úrovni nebo pokud XPathNavigator je aktuálně umístěn na uzlu atributu. Pokud falsese pozice objektu XPathNavigator nezmění.
Poznámky
Návratová MoveToNext hodnota metody závisí na XPathNodeType aktuálním uzlu a XPathNodeType na dalším uzlu na stejné úrovni, na který se má přesunout.
Následující tabulka ukazuje různé XPathNodeType uzly a uzly na stejné úrovni, na které se můžou přesunout.
| XPathNodeType aktuálního uzlu | Uzel na stejné úrovni XPathNodeType |
|---|---|
| Element | Element, ProcessingInstruction, Comment nebo Text. |
| Text | Element, ProcessingInstruction, Comment nebo Text. |
| ProcessingInstruction | Element, ProcessingInstruction, Comment nebo Text. |
| Comment | Element, ProcessingInstruction, Comment nebo Text. |
| Všechny ostatní XPathNodeType hodnoty | Žádné. |
Platí pro
MoveToNext(String, String)
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
- Zdroj:
- XPathNavigator.cs
Přesune na XPathNavigator další uzel na stejné úrovni se zadaným místním názvem a identifikátorem URI oboru názvů.
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
Parametry
- localName
- String
Místní název dalšího uzlu na stejné úrovni, na který se má přesunout.
- namespaceURI
- String
Identifikátor URI oboru názvů dalšího uzlu na stejné úrovni, na který se má přesunout.
Návraty
true
XPathNavigator pokud je úspěšný přechod na další uzel na stejné úrovni; false pokud už nejsou na stejné úrovni nebo pokud XPathNavigator je aktuálně umístěn na uzlu atributu. Pokud falsese pozice objektu XPathNavigator nezmění.