XPathNavigator.MoveToNext Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Sposta il tipo XPathNavigator sul successivo nodo di pari livello del nodo corrente.
Overload
MoveToNext() |
Quando sottoposto a override in una classe derivata, sposta l'oggetto XPathNavigator sul nodo di pari livello successivo del nodo corrente. |
MoveToNext(XPathNodeType) |
Sposta l'oggetto XPathNavigator sul nodo di pari livello successivo del nodo corrente corrispondente al tipo di nodo XPathNodeType specificato. |
MoveToNext(String, String) |
Sposta l'oggetto XPathNavigator sul nodo di pari livello successivo con il nome locale e l'URI dello spazio dei nomi specificati. |
MoveToNext()
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
Quando sottoposto a override in una classe derivata, sposta l'oggetto XPathNavigator sul nodo di pari livello successivo del nodo corrente.
public:
abstract bool MoveToNext();
public abstract bool MoveToNext ();
abstract member MoveToNext : unit -> bool
Public MustOverride Function MoveToNext () As Boolean
Restituisce
true
se l'oggetto XPathNavigator viene spostato sul nodo di pari livello successivo; in caso contrario, false
se non sono disponibili altri nodi di pari livello o se l'oggetto XPathNavigator è attualmente posizionato in corrispondenza di un nodo attributo. Se false
, la posizione dell'oggetto XPathNavigator rimane immutata.
Esempio
Nell'esempio seguente viene eseguito l'iterazione sull'albero dei nodi in modo ricorsivo e vengono visualizzate informazioni sui nodi di elemento e testo.
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
Nell'esempio il file books.xml
viene considerato come input.
<?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>
Vedi anche
Si applica a
MoveToNext(XPathNodeType)
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
Sposta l'oggetto XPathNavigator sul nodo di pari livello successivo del nodo corrente corrispondente al tipo di nodo XPathNodeType specificato.
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
Parametri
- type
- XPathNodeType
Tipo di nodo XPathNodeType del nodo di pari livello su cui eseguire lo spostamento.
Restituisce
true
se l'oggetto XPathNavigator viene spostato sul nodo di pari livello successivo; in caso contrario, false
se non sono disponibili altri nodi di pari livello o se l'oggetto XPathNavigator è attualmente posizionato in corrispondenza di un nodo attributo. Se false
, la posizione dell'oggetto XPathNavigator rimane immutata.
Commenti
Il valore restituito del MoveToNext metodo dipende dal XPathNodeType nodo corrente e dal XPathNodeType nodo successivo a cui passare.
Nella tabella seguente vengono illustrati i diversi XPathNodeType nodi e i nodi di pari livello a cui possono passare.
XPathNodeType del nodo corrente | XPathNodeType del nodo di pari livello |
---|---|
Element | Element, ProcessingInstruction, Comment o Text. |
Text | Element, ProcessingInstruction, Comment o Text. |
ProcessingInstruction | Element, ProcessingInstruction, Comment o Text. |
Comment | Element, ProcessingInstruction, Comment o Text. |
Tutti gli altri XPathNodeType valori | Nessuno. |
Si applica a
MoveToNext(String, String)
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
- Origine:
- XPathNavigator.cs
Sposta l'oggetto XPathNavigator sul nodo di pari livello successivo con il nome locale e l'URI dello spazio dei nomi specificati.
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
Parametri
- localName
- String
Nome locale del nodo di pari livello successivo su cui eseguire lo spostamento.
- namespaceURI
- String
URI dello spazio dei nomi del nodo di pari livello successivo su cui eseguire lo spostamento.
Restituisce
true
se l'oggetto XPathNavigator viene spostato sul nodo di pari livello successivo oppure false
se non sono disponibili altri nodi di pari livello o se l'oggetto XPathNavigator è attualmente posizionato in corrispondenza di un nodo attributo. Se false
, la posizione dell'oggetto XPathNavigator rimane immutata.