XPathNodeIterator Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia iterator dla wybranego zestawu węzłów.
public ref class XPathNodeIterator abstract : ICloneable, System::Collections::IEnumerable
public ref class XPathNodeIterator abstract : System::Collections::IEnumerable
public ref class XPathNodeIterator abstract : ICloneable
public abstract class XPathNodeIterator : ICloneable, System.Collections.IEnumerable
public abstract class XPathNodeIterator : System.Collections.IEnumerable
public abstract class XPathNodeIterator : ICloneable
type XPathNodeIterator = class
interface IEnumerable
interface ICloneable
type XPathNodeIterator = class
interface IEnumerable
type XPathNodeIterator = class
interface ICloneable
type XPathNodeIterator = class
interface ICloneable
interface IEnumerable
Public MustInherit Class XPathNodeIterator
Implements ICloneable, IEnumerable
Public MustInherit Class XPathNodeIterator
Implements IEnumerable
Public MustInherit Class XPathNodeIterator
Implements ICloneable
- Dziedziczenie
-
XPathNodeIterator
- Implementuje
Przykłady
W poniższym przykładzie użyto Select metody XPathNavigator klasy do wybrania zestawu węzłów przy użyciu XPathNodeIterator klasy .
XPathDocument^ document = gcnew 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);
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
W przykładzie plik jest pobierany books.xml
jako dane wejściowe.
<?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>
Uwagi
XPathNodeIterator Obiekt zwracany przez klasę XPathNavigator nie jest umieszczony w pierwszym węźle w wybranym zestawie węzłów. Wywołanie MoveNext metody XPathNodeIterator klasy musi zostać wykonane, aby umieścić XPathNodeIterator obiekt w pierwszym węźle w wybranym zestawie węzłów.
W przypadku korzystania z elementu XPathNodeIterator, jeśli edytujesz bieżący węzeł lub którykolwiek z jego elementów nadrzędnych, bieżąca pozycja zostanie utracona. Jeśli chcesz edytować kilka wybranych węzłów, utwórz tablicę XPathNavigator , skopiuj wszystkie węzły z XPathNodeIterator tablicy do tablicy, a następnie wykonaj iterację po tablicy i zmodyfikuj węzły.
Istnieją dwa sposoby iteracji XPathNavigator kolekcji przy użyciu XPathNodeIterator klasy .
Jednym ze sposobów jest użycie MoveNext metody , a następnie wywołanie Current metody w celu pobrania bieżącego XPathNavigator wystąpienia, jak w poniższym przykładzie:
while (nodeIterator->MoveNext())
{
XPathNavigator^ n = nodeIterator->Current;
Console::WriteLine(n->LocalName);
}
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
Innym sposobem jest użycie foreach
pętli w celu wywołania GetEnumerator metody i użycia zwróconego IEnumerator interfejsu w celu wyliczenia węzłów, jak w poniższym przykładzie:
for each (XPathNavigator^ n in nodeIterator)
Console::WriteLine(n->LocalName);
foreach (XPathNavigator n in nodeIterator)
Console.WriteLine(n.LocalName);
For Each n As XPathNavigator In nodeIterator
Console.WriteLine(nav.LocalName)
Next
Należy użyć polecenia MoveNext i Current lub użyć polecenia GetEnumerator. Połączenie tych dwóch podejść może spowodować nieoczekiwane wyniki. Jeśli na przykład MoveNext metoda jest wywoływana jako pierwsza, a następnie GetEnumerator metoda jest wywoływana w foreach
pętli, foreach
pętla nie rozpocznie wyliczania wyników od początku kolekcji, ale z pozycji po metodzie Current .
Uwagi dotyczące implementowania
Podczas dziedziczenia XPathNodeIterator z klasy należy zastąpić następujące elementy członkowskie:
Konstruktory
XPathNodeIterator() |
Inicjuje nowe wystąpienie klasy XPathNodeIterator. |
Właściwości
Count |
Pobiera indeks ostatniego węzła w wybranym zestawie węzłów. |
Current |
Po zastąpieniu w klasie pochodnej pobiera XPathNavigator obiekt dla tego XPathNodeIteratorobiektu , umieszczony w bieżącym węźle kontekstu. |
CurrentPosition |
Po zastąpieniu w klasie pochodnej pobiera indeks bieżącej pozycji w wybranym zestawie węzłów. |
Metody
Clone() |
Po zastąpieniu w klasie pochodnej zwraca klon tego XPathNodeIterator obiektu. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetEnumerator() |
IEnumerator Zwraca obiekt do iterowania po wybranym zestawie węzłów. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
MoveNext() |
Po przesłonięciu w klasie pochodnej obiekt XPathNavigator zwracany przez Current właściwość do następnego węzła w wybranym zestawie węzłów. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
ICloneable.Clone() |
Tworzy nowy obiekt, który jest kopią bieżącego wystąpienia. |
Metody rozszerzania
Cast<TResult>(IEnumerable) |
Rzutuje elementy elementu IEnumerable na określony typ. |
OfType<TResult>(IEnumerable) |
Filtruje elementy IEnumerable elementu na podstawie określonego typu. |
AsParallel(IEnumerable) |
Umożliwia równoległość zapytania. |
AsQueryable(IEnumerable) |
Konwertuje element IEnumerable na .IQueryable |