XPathNodeIterator Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Iterátort biztosít egy kijelölt csomópontkészleten.
public ref class XPathNodeIterator abstract : ICloneable
public ref class XPathNodeIterator abstract : ICloneable, System::Collections::IEnumerable
public abstract class XPathNodeIterator : ICloneable
public abstract class XPathNodeIterator : ICloneable, System.Collections.IEnumerable
type XPathNodeIterator = class
interface ICloneable
type XPathNodeIterator = class
interface ICloneable
interface IEnumerable
type XPathNodeIterator = class
interface IEnumerable
interface ICloneable
Public MustInherit Class XPathNodeIterator
Implements ICloneable
Public MustInherit Class XPathNodeIterator
Implements ICloneable, IEnumerable
- Öröklődés
-
XPathNodeIterator
- Megvalósítás
Példák
Az alábbi példa az Select osztály metódusával XPathNavigator választ ki egy csomópontkészletet az XPathNodeIterator osztály használatával.
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
A példa a books.xml fájlt veszi bemenetként.
<?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>
Megjegyzések
Az XPathNodeIterator osztály által XPathNavigator visszaadott objektum nincs a kijelölt csomópontkészlet első csomópontján. Meg kell hívni az MoveNextXPathNodeIterator osztály metódusát, hogy az objektumot XPathNodeIterator a kijelölt csomópontkészlet első csomópontján helyezze el.
Ha az XPathNodeIteratoraktuális csomópontot vagy annak valamelyik elődjét szerkessze, a jelenlegi pozíció elveszik. Ha több kijelölt csomópontot szeretne szerkeszteni, hozzon létre egy XPathNavigator tömböt, másolja az összes csomópontot a XPathNodeIterator tömbbe, majd iterálja végig a tömböt, és módosítsa a csomópontokat.
Az osztály használatával XPathNodeIterator kétféleképpen lehet iterálni egy XPathNavigator gyűjteményt.
Ennek egyik módja a MoveNext metódus használata, majd az aktuális XPathNavigator példány lekéréseCurrent, ahogyan az alábbi példában is látható:
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
Egy másik módszer a foreach metódus meghívása GetEnumerator és a visszaadott IEnumerator felület használata a csomópontok számbavételére, ahogyan az alábbi példában is látható:
foreach (XPathNavigator n in nodeIterator)
Console.WriteLine(n.LocalName);
For Each n As XPathNavigator In nodeIterator
Console.WriteLine(nav.LocalName)
Next
Használhatja MoveNext és Current használhatja GetEnumeratoris. A két módszer kombinálása váratlan eredményeket okozhat. Ha például a MoveNext metódust hívják meg először, majd a GetEnumerator metódust meghívja a foreach hurokban, a foreach ciklus nem a gyűjtemény elejétől, hanem a metódus utáni Current pozícióból kezdi meg az eredmények számbavételét.
Megjegyzések az implementálókhoz
Ha az XPathNodeIterator osztálytól örököl, felül kell bírálnia a következő tagokat:
Konstruktorok
| Name | Description |
|---|---|
| XPathNodeIterator() |
Inicializálja a XPathNodeIterator osztály új példányát. |
Tulajdonságok
| Name | Description |
|---|---|
| Count |
Lekéri a kijelölt csomópontkészlet utolsó csomópontjának indexét. |
| Current |
Ha felül van bírálva egy származtatott osztályban, lekéri ennek XPathNodeIteratoraz objektumnak az XPathNavigator objektumát, amely az aktuális környezeti csomóponton van elhelyezve. |
| CurrentPosition |
Ha felülbírált egy származtatott osztályban, lekéri az aktuális pozíció indexét a kijelölt csomópontkészletben. |
Metódusok
| Name | Description |
|---|---|
| Clone() |
Ha felül van bírálva egy származtatott osztályban, ennek az objektumnak a klónját XPathNodeIterator adja vissza. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetEnumerator() |
Egy objektumot ad IEnumerator vissza, amely a kijelölt csomópontkészleten halad át. |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| MoveNext() |
Ha egy származtatott osztályban felül van bírálva, a XPathNavigator tulajdonság által Current visszaadott objektumot a kijelölt csomópontkészlet következő csomópontja felé helyezi át. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| ICloneable.Clone() |
Létrehoz egy új objektumot, amely az aktuális példány másolata. |
Bővítő metódusok
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Lehetővé teszi a lekérdezés párhuzamosítását. |
| AsQueryable(IEnumerable) |
Átalakítja az egyiket IEnumerableIQueryable. |
| Cast<TResult>(IEnumerable) |
Egy elem elemeit IEnumerable a megadott típusra veti. |
| OfType<TResult>(IEnumerable) |
Egy adott típus alapján szűri IEnumerable egy adott elem elemeit. |