XmlDocument.ImportNode(XmlNode, Boolean) 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.
Importe un nœud d’un autre document vers le document actif.
public:
virtual System::Xml::XmlNode ^ ImportNode(System::Xml::XmlNode ^ node, bool deep);
public virtual System.Xml.XmlNode ImportNode(System.Xml.XmlNode node, bool deep);
abstract member ImportNode : System.Xml.XmlNode * bool -> System.Xml.XmlNode
override this.ImportNode : System.Xml.XmlNode * bool -> System.Xml.XmlNode
Public Overridable Function ImportNode (node As XmlNode, deep As Boolean) As XmlNode
Paramètres
- node
- XmlNode
Nœud importé.
- deep
- Boolean
true pour effectuer un clone profond ; sinon, false.
Retours
Importé XmlNode.
Exceptions
Le type de nœud ne peut pas être importé.
Exemples
L’exemple suivant importe un nœud de livre à partir d’un deuxième document XML dans le document XML d’origine.
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
//Create the XmlDocument.
XmlDocument doc = new XmlDocument();
doc.LoadXml("<bookstore>" +
"<book genre='novel' ISBN='1-861001-57-5'>" +
"<title>Pride And Prejudice</title>" +
"</book>" +
"</bookstore>");
//Create another XmlDocument which holds a list of books.
XmlDocument doc2 = new XmlDocument();
doc2.Load("books.xml");
//Import the last book node from doc2 into the original document.
XmlNode newBook = doc.ImportNode(doc2.DocumentElement.LastChild, true);
doc.DocumentElement.AppendChild(newBook);
Console.WriteLine("Display the modified XML...");
doc.Save(Console.Out);
}
}
Option Explicit
Option Strict
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
'Create the XmlDocument.
Dim doc As New XmlDocument()
doc.LoadXml("<bookstore>" & _
"<book genre='novel' ISBN='1-861001-57-5'>" & _
"<title>Pride And Prejudice</title>" & _
"</book>" & _
"</bookstore>")
'Create another XmlDocument which holds a list of books.
Dim doc2 As New XmlDocument()
doc2.Load("books.xml")
'Import the last book node from doc2 into the original document.
Dim newBook As XmlNode = doc.ImportNode(doc2.DocumentElement.LastChild, True)
doc.DocumentElement.AppendChild(newBook)
Console.WriteLine("Display the modified XML...")
doc.Save(Console.Out)
End Sub
End Class
L’exemple utilise le fichier, books.xmlcomme entrée.
<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography" publicationdate="1981" 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" 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" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
Remarques
Le nœud retourné n’a pas de parent. Le nœud source n’est pas modifié ou supprimé du document d’origine ; ImportNode crée une copie du nœud source.
L’importation d’un nœud crée un XmlNode objet appartenant au document d’importation, avec Name et NodeType identique au nœud source. Le nouvel objet a également les attributs liés aux espaces de noms (Prefix, LocalNameet NamespaceURI).
En fonction du type de nœud du nœud importé et de la valeur du deep paramètre, des informations supplémentaires sont copiées selon les besoins. Cette méthode tente de mettre en miroir le comportement attendu si un fragment de source XML ou HTML a été copié d’un document à un autre (reconnaissant que, dans le cas XML, les deux documents pouvaient avoir des DTD différents).
Le tableau suivant décrit le comportement spécifique pour chaque XmlNodeType.
| XmlNodeType | ImportNode(true) | ImportNode(false) |
|---|---|---|
| Caractéristique | La Specified propriété est définie true sur le fichier généré XmlAttribute. Les descendants de la source XmlAttribute sont importés de manière récursive et les nœuds résultants sont réassembtés pour former la sous-arborescence correspondante. |
Le deep paramètre ne s’applique pas aux XmlAttribute nœuds ; ils transportent toujours leurs enfants avec eux lorsqu’ils sont importés. |
| CData | Copie le nœud, y compris ses données. | Copie le nœud, y compris ses données. |
| Commentaire | Copie le nœud, y compris ses données. | Copie le nœud, y compris ses données. |
| DocumentFragment | Les descendants du nœud source sont importés de manière récursive et les nœuds résultants sont réassembtés pour former la sous-arborescence correspondante. | Un vide XmlDocumentFragment est généré. |
| DocumentType | Copie le nœud, y compris ses données.* | Copie le nœud, y compris ses données.* |
| Élément | Les descendants de l’élément source et de ses nœuds d’attribut spécifiés sont importés de manière récursive et les nœuds résultants réassemblent pour former la sous-arborescence correspondante. Remarque : Les attributs par défaut ne sont pas copiés. Si le document importé dans définit des attributs par défaut pour ce nom d’élément, ceux-ci sont affectés. |
Les nœuds d’attribut spécifiés de l’élément source sont importés et les nœuds générés XmlAttribute sont attachés à l’élément généré XmlElement.Remarque : Les attributs par défaut ne sont pas copiés. Si le document importé dans définit des attributs par défaut pour ce nom d’élément, ceux-ci sont affectés. |
| Référence d'entité | Étant donné que les documents source et de destination peuvent avoir les entités définies différemment, cette méthode copie uniquement le XmlEntityReference nœud. Le texte de remplacement n’est pas inclus. Si le document de destination a l’entité définie, sa valeur est affectée. | Étant donné que les documents source et de destination peuvent avoir les entités définies différemment, cette méthode copie uniquement le XmlEntityReference nœud. Le texte de remplacement n’est pas inclus. Si le document de destination a l’entité définie, sa valeur est affectée. |
| Instruction de traitement | Copie la cible et la valeur de données du nœud importé. | Copie la cible et la valeur de données du nœud importé. |
| Texte | Copie le nœud, y compris ses données. | Copie le nœud, y compris ses données. |
| SignificantWhitespace | Copie le nœud, y compris ses données. | Copie le nœud, y compris ses données. |
| Espace blanc | Copie le nœud, y compris ses données. | Copie le nœud, y compris ses données. |
| Déclaration XML | Copie la cible et la valeur de données du nœud importé. | Copie la cible et la valeur de données du nœud importé. |
| Tous les autres types de nœuds. | Ces types de nœuds ne peuvent pas être importés. | Ces types de nœuds ne peuvent pas être importés. |
*Bien que les nœuds DocumentType puissent être importés, un document ne peut avoir qu’un seul DocumentType. Si le document possède actuellement un nœud DocumentType, il doit être supprimé avant d’en ajouter un nouveau.