XPathNavigator.Clone Metoda

Definice

Při přepsání v odvozené třídě vytvoří nový XPathNavigator umístěný na stejném uzlu jako to XPathNavigator .When overridden in a derived class, creates a new XPathNavigator positioned at the same node as this 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

Návraty

XPathNavigator

Nový XPathNavigator umístěný na stejném uzlu jako tento XPathNavigator .A new XPathNavigator positioned at the same node as this XPathNavigator.

Příklady

Následující příklad načte všechny tituly pro knihy vytvořené pomocí Herman Melville.The following example gets all book titles authored by Herman Melville.

XPathDocument^ document = gcnew 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 = 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

Tento příklad přebírá books.xml soubor jako vstup.The example takes the books.xml file as an input.

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

Poznámky

CloneMetoda je obzvláště užitečná ve spojení s XPathNodeIterator .The Clone method is especially useful in conjunction with the XPathNodeIterator. XPathNodeIteratorSlouží k iterování přes vybranou sadu uzlů a obsahuje Current vlastnost, která vrací XPathNavigator umístěný v kontextu uzlu XPathNodeIterator .An XPathNodeIterator is used to iterate over a selected node set, and contains a Current property which returns an XPathNavigator positioned on the context node of the XPathNodeIterator. XPathNavigator Current Vlastnost vrácená vlastností však nelze použít k přesunu směrem od sady uzlů.However, the XPathNavigator returned by the Current property cannot be used to move away from the node set. Místo toho naklonujte vrácenou XPathNavigator a pomocí klonovaného navigátoru proveďte další přesuny.Instead, you clone the returned XPathNavigator and use the cloned navigator to do any additional moves.

Klonování není XPathNavigator ovlivněno následnými změnami původní XPathNavigator .The cloned XPathNavigator is not affected by subsequent changes to the original XPathNavigator.

Platí pro