Freigeben über


XPathNodeIterator.Current-Eigenschaft

Gibt beim Überscheiben in einer abgeleiteten Klasse das XPathNavigator-Objekt für diesen XPathNodeIterator zurück, der sich auf dem aktuellen Kontextknoten befindet.

Namespace: System.Xml.XPath
Assembly: System.Xml (in system.xml.dll)

Syntax

'Declaration
Public MustOverride ReadOnly Property Current As XPathNavigator
'Usage
Dim instance As XPathNodeIterator
Dim value As XPathNavigator

value = instance.Current
public abstract XPathNavigator Current { get; }
public:
virtual property XPathNavigator^ Current {
    XPathNavigator^ get () abstract;
}
/** @property */
public abstract XPathNavigator get_Current ()
public abstract function get Current () : XPathNavigator

Eigenschaftenwert

Ein XPathNavigator-Objekt, das auf dem Kontextknoten positioniert ist, von dem die Gruppe von Knoten ausgewählt wurde. Die MoveNext-Methode muss aufgerufen werden, um den XPathNodeIterator auf dem ersten Knoten in der ausgewählten Gruppe zu positionieren.

Hinweise

Sie können die Eigenschaften des zurückgegebenen XPathNavigator-Objekts verwenden, um Informationen über den aktuellen Knoten zu erhalten. Das zurückgegebene XPathNavigator-Objekt sollte jedoch nicht geändert werden. Das zurückgegebene XPathNavigator-Objekt kann nicht aus der Gruppe der ausgewählten Knoten verschoben werden.

Alternativ können Sie das XPathNavigator-Objekt mit der Clone-Methode der XPathNavigator-Klasse klonen. Das geklonte XPathNavigator-Objekt kann dann aus der Gruppe der ausgewählten Knoten verschoben werden. Dieses Verfahren zum Klonen des XPathNavigator-Objekts kann die Leistung der XPath-Abfrage beeinflussen.

Wenn durch die SelectAncestors-Methode, die SelectDescendants-Methode und die SelectChildren-Methode keine Knoten ausgewählt werden, verweist die Current-Eigenschaft möglicherweise nicht auf den Kontextknoten.

Um zu prüfen, ob Knoten ausgewählt wurden, verwenden Sie die Count-Eigenschaft, wie im folgenden Beispiel veranschaulicht.

Beispiel

Im folgenden Beispiel werden die Titel aller von Herman Melville verfassten Bücher abgerufen. Hierzu wird die Current-Eigenschaft des XPathNodeIterator-Objekts und die Clone-Methode der XPathNavigator-Klasse verwendet.

Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

' Select all books authored by Melville.
Dim nodes As XPathNodeIterator = navigator.Select("descendant::book[author/last-name='Melville']")

While nodes.MoveNext()
    ' Clone the navigator returned by the Current property. 
    ' Use the cloned navigator to get the title element.
    Dim clone As XPathNavigator = nodes.Current.Clone()
    clone.MoveToFirstChild()
    Console.WriteLine("Book title: {0}", clone.Value)
End While
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

// Select all books authored by Melville.
XPathNodeIterator nodes = navigator.Select("descendant::book[author/last-name='Melville']");

while (nodes.MoveNext())
{
    // Clone the navigator returned by the Current property. 
    // Use the cloned navigator to get the title element.
    XPathNavigator clone = nodes.Current.Clone();
    clone.MoveToFirstChild();
    Console.WriteLine("Book title: {0}", clone.Value);
}
XPathDocument^ document = gcnew XPathDocument("books.xml");
XPathNavigator^ navigator = document->CreateNavigator();
XPathExpression^ query = 
    navigator->Compile("/bookstore/book");
XPathNodeIterator^ nodes = navigator->Select(query);
XPathNavigator^ nodesNavigator = nodes->Current;
for each(XPathNavigator^ navigator in nodesNavigator->
    SelectDescendants(XPathNodeType::Text, false))
{
    Console::Write(navigator->Name);
    Console::WriteLine(navigator->Value);
}

Im Beispiel wird die Datei contosoBooks.xml als Eingabe verwendet.

<bookstore xmlns="https://www.contoso.com/books">
    <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>

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

XPathNodeIterator-Klasse
XPathNodeIterator-Member
System.Xml.XPath-Namespace
MoveNext
Clone
SelectAncestors
SelectDescendants
SelectChildren
XPathNodeIterator.Count-Eigenschaft