XPathNavigator.Clone Methode

Definitie

Wanneer deze wordt overschreven in een afgeleide klasse, maakt u een nieuwe XPathNavigator positie op hetzelfde knooppunt als deze XPathNavigator.

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

Retouren

Een nieuwe XPathNavigator positie op hetzelfde knooppunt als dit XPathNavigator.

Voorbeelden

In het volgende voorbeeld worden alle boektitels opgehaald die zijn geschreven door Herman Melville.

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

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

De Clone methode is vooral nuttig in combinatie met de XPathNodeIterator. Een XPathNodeIterator wordt gebruikt om een geselecteerde knooppuntset te herhalen en bevat een eigenschap die een CurrentXPathNavigator positie retourneert op het contextknooppunt van het XPathNodeIterator. De XPathNavigator geretourneerde eigenschap Current kan echter niet worden gebruikt om weg te gaan van de knooppuntset. In plaats daarvan kloont u de geretourneerde XPathNavigator en gebruikt u de gekloonde navigator om eventuele extra verplaatsingen uit te voeren.

De gekloonde XPathNavigator wordt niet beïnvloed door volgende wijzigingen in het origineel XPathNavigator.

Van toepassing op