XPathNodeIterator.MoveNext 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.
Quando sottoposto a override in una classe derivata, sposta l'oggetto XPathNavigator restituito dalla Current proprietà al nodo successivo nel set di nodi selezionato.
public:
abstract bool MoveNext();
public abstract bool MoveNext();
abstract member MoveNext : unit -> bool
Public MustOverride Function MoveNext () As Boolean
Restituisce
true se l'oggetto XPathNavigator è stato spostato nel nodo successivo; false se non sono presenti più nodi selezionati.
Esempio
Nell'esempio seguente viene usato il Select metodo della XPathNavigator classe per selezionare un set di nodi usando la XPathNodeIterator classe .
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathNodeIterator nodes = navigator.Select("/bookstore/book");
nodes.MoveNext();
XPathNavigator nodesNavigator = nodes.Current;
XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);
while (nodesText.MoveNext())
Console.WriteLine(nodesText.Current.Value);
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim nodes As XPathNodeIterator = navigator.Select("/bookstore/book")
nodes.MoveNext()
Dim nodesNavigator As XPathNavigator = nodes.Current
Dim nodesText As XPathNodeIterator = nodesNavigator.SelectDescendants(XPathNodeType.Text, False)
While nodesText.MoveNext()
Console.WriteLine(nodesText.Current.Value)
End While
L'esempio accetta il file books.xml 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>
Commenti
L'oggetto XPathNodeIterator viene posizionato sul primo nodo del set di nodi selezionato solo dopo la chiamata iniziale al MoveNext metodo . Il set di nodi viene creato nell'ordine dei documenti. Pertanto, la chiamata al MoveNext metodo passa al nodo successivo in ordine di documento.
Esistono due modi per scorrere una XPathNavigator raccolta usando la XPathNodeIterator classe .
Un modo consiste nell'usare il MoveNext metodo e quindi chiamare Current per ottenere l'istanza corrente XPathNavigator , come nell'esempio seguente:
while (nodeIterator.MoveNext())
{
XPathNavigator n = nodeIterator.Current;
Console.WriteLine(n.LocalName);
}
While nodeIterator.MoveNext()
Dim n As XPathNavigator = nodeIterator.Current
Console.WriteLine(n.LocalName)
End While
Un altro modo consiste nell'usare un foreach ciclo per chiamare il GetEnumerator metodo e usare l'interfaccia restituita IEnumerator per enumerare i nodi, come nell'esempio seguente:
foreach (XPathNavigator n in nodeIterator)
Console.WriteLine(n.LocalName);
For Each n As XPathNavigator In nodeIterator
Console.WriteLine(nav.LocalName)
Next
È consigliabile usare il MoveNext metodo e Current o usare il GetEnumerator metodo . La combinazione di questi due approcci può causare risultati imprevisti. Ad esempio, se il MoveNext metodo viene chiamato per primo e quindi il GetEnumerator metodo viene chiamato nel foreach ciclo , il foreach ciclo non inizierà ad enumerare i risultati dall'inizio della raccolta, ma dalla posizione dopo il Current metodo .