Freigeben über


XPathNavigator.Clone Methode

Definition

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird eine neue XPathNavigator Position am selben Knoten wie dieser XPathNavigatorerstellt.

public:
 abstract System::Xml::XPath::XPathNavigator ^ Clone();
public abstract System.Xml.XPath.XPathNavigator Clone();
abstract member Clone : unit -> System.Xml.XPath.XPathNavigator
Public MustOverride Function Clone () As XPathNavigator

Gibt zurück

Eine neue XPathNavigator Position am selben Knoten wie dieser XPathNavigator.

Beispiele

Im folgenden Beispiel werden alle buchtitel von Herman Melville verfasst.

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);
}
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

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

<?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>

Hinweise

Die Clone Methode ist besonders nützlich in Verbindung mit der XPathNodeIterator. Es XPathNodeIterator wird verwendet, um einen ausgewählten Knotensatz zu durchlaufen und enthält eine Current Eigenschaft, die auf XPathNavigator dem Kontextknoten der .XPathNodeIterator Die XPathNavigator von der Current Eigenschaft zurückgegebene Eigenschaft kann jedoch nicht verwendet werden, um sich vom Knotensatz zu entfernen. Stattdessen klonen Sie die zurückgegebene XPathNavigator und verwenden den geklonten Navigator, um weitere Verschiebungen auszuführen.

Die geklonte XPathNavigator Datei ist von nachfolgenden Änderungen am Original XPathNavigatornicht betroffen.

Gilt für: