XPathNavigator.Clone Método

Definição

Quando substituído em uma classe derivada, cria um novo XPathNavigator posicionado no mesmo nó que este 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

Retornos

XPathNavigator

Um novo XPathNavigator posicionado no mesmo nó que este XPathNavigator.A new XPathNavigator positioned at the same node as this XPathNavigator.

Exemplos

O exemplo a seguir obtém todos os títulos de livros criados por 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

O exemplo usa o arquivo books.xml como entrada.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>  

Comentários

O Clone método é especialmente útil em conjunto com o XPathNodeIterator .The Clone method is especially useful in conjunction with the XPathNodeIterator. Um XPathNodeIterator é usado para iterar em um conjunto de nós selecionado e contém uma Current propriedade que retorna um XPathNavigator posicionado no nó de contexto do 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. No entanto, o XPathNavigator retornado pela Current propriedade não pode ser usado para sair do conjunto de nós.However, the XPathNavigator returned by the Current property cannot be used to move away from the node set. Em vez disso, você clona o retornado XPathNavigator e usa o navegador clonado para fazer qualquer movimento adicional.Instead, you clone the returned XPathNavigator and use the cloned navigator to do any additional moves.

O clonado XPathNavigator não é afetado pelas alterações subsequentes no original XPathNavigator .The cloned XPathNavigator is not affected by subsequent changes to the original XPathNavigator.

Aplica-se a