XPathNavigator.Clone Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
En cas de substitution dans une classe dérivée, crée un XPathNavigator positionné au même nœud que ce 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
Retours
Nouveau XPathNavigator positionné au même nœud que ce XPathNavigator.
Exemples
L’exemple suivant obtient tous les titres de livre créés par 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
L'exemple prend le fichier books.xml
comme entrée.
<?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>
Remarques
La Clone méthode est particulièrement utile conjointement avec le XPathNodeIterator. Un XPathNodeIterator est utilisé pour itérer sur un jeu de nœuds sélectionné et contient une propriété qui retourne une Current XPathNavigator propriété positionnée sur le nœud de contexte du XPathNodeIterator. Toutefois, la XPathNavigator Current propriété retournée ne peut pas être utilisée pour s’éloigner du jeu de nœuds. Au lieu de cela, vous clonez le navigateur retourné XPathNavigator et utilisez le navigateur cloné pour effectuer des déplacements supplémentaires.
Le cloné XPathNavigator n’est pas affecté par les modifications suivantes apportées à l’original XPathNavigator.