XPathNodeIterator Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt een iterator voor een geselecteerde set knooppunten.
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
- Overname
-
XPathNodeIterator
- Implementeringen
Voorbeelden
In het volgende voorbeeld wordt de Select methode van de XPathNavigator klasse gebruikt om een knooppuntset te selecteren met behulp van de XPathNodeIterator klasse.
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
In het voorbeeld wordt het books.xml bestand als invoer gebruikt.
<?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>
Opmerkingen
Een XPathNodeIterator object dat door de XPathNavigator klasse wordt geretourneerd, bevindt zich niet op het eerste knooppunt in een geselecteerde set knooppunten. Er moet een aanroep van de MoveNext methode van de XPathNodeIterator klasse worden gemaakt om het XPathNodeIterator object op het eerste knooppunt in de geselecteerde set knooppunten te plaatsen.
Wanneer u het XPathNodeIteratorhuidige knooppunt of een van de bovenliggende knooppunten bewerkt, gaat uw huidige positie verloren. Als u een aantal geselecteerde knooppunten wilt bewerken, maakt u een XPathNavigator matrix, kopieert u alle knooppunten van de XPathNodeIterator knooppunten naar de matrix, herhaalt u de matrix en wijzigt u de knooppunten.
Er zijn twee manieren om een XPathNavigator verzameling te herhalen met behulp van de XPathNodeIterator klasse.
Een manier is om de MoveNext methode te gebruiken en vervolgens aan te roepen Current om het huidige XPathNavigator exemplaar op te halen, zoals in het volgende voorbeeld:
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
Een andere manier is om een foreach lus te gebruiken om de GetEnumerator methode aan te roepen en de geretourneerde IEnumerator interface te gebruiken om de knooppunten op te sommen, zoals in het volgende voorbeeld:
foreach (XPathNavigator n in nodeIterator)
Console.WriteLine(n.LocalName);
For Each n As XPathNavigator In nodeIterator
Console.WriteLine(nav.LocalName)
Next
U moet ofwel gebruiken MoveNext en Current of gebruiken GetEnumerator. Het combineren van deze twee benaderingen kan onverwachte resultaten veroorzaken. Als de MoveNext methode bijvoorbeeld eerst wordt aangeroepen en de GetEnumerator methode vervolgens in de foreach lus wordt aangeroepen, begint de foreach lus niet met het inventariseren van de resultaten vanaf het begin van de verzameling, maar vanaf de positie na de Current methode.
Notities voor uitvoerders
Wanneer u de XPathNodeIterator klasse overschrijft, moet u de volgende leden overschrijven:
Constructors
| Name | Description |
|---|---|
| XPathNodeIterator() |
Initialiseert een nieuw exemplaar van de XPathNodeIterator klasse. |
Eigenschappen
| Name | Description |
|---|---|
| Count |
Hiermee haalt u de index op van het laatste knooppunt in de geselecteerde set knooppunten. |
| Current |
Wanneer het object wordt overschreven in een afgeleide klasse, wordt het XPathNavigator object hiervoor XPathNodeIteratoropgehaald, geplaatst op het huidige contextknooppunt. |
| CurrentPosition |
Wanneer deze wordt overschreven in een afgeleide klasse, haalt u de index op van de huidige positie in de geselecteerde set knooppunten. |
Methoden
| Name | Description |
|---|---|
| Clone() |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een kloon van dit XPathNodeIterator object geretourneerd. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetEnumerator() |
Retourneert een IEnumerator object dat door de geselecteerde knooppuntset wordt herhaald. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| MoveNext() |
Wanneer het object wordt overschreven in een afgeleide klasse, verplaatst u het XPathNavigator object dat door de Current eigenschap wordt geretourneerd naar het volgende knooppunt in de geselecteerde knooppuntset. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| ICloneable.Clone() |
Hiermee maakt u een nieuw object dat een kopie van het huidige exemplaar is. |
Extensiemethoden
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Hiermee schakelt u parallelle uitvoering van een query in. |
| AsQueryable(IEnumerable) |
Converteert een IEnumerable naar een IQueryable. |
| Cast<TResult>(IEnumerable) |
Cast de elementen van een IEnumerable naar het opgegeven type. |
| OfType<TResult>(IEnumerable) |
Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type. |