XmlDocument.ImportNode(XmlNode, Boolean) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Importa un nodo da un altro documento al documento corrente.
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
Parametri
- node
- XmlNode
Nodo da importare.
- deep
- Boolean
true per eseguire un clone profondo; in caso contrario, false.
Restituisce
Oggetto importato XmlNode.
Eccezioni
Non è possibile importare il tipo di nodo.
Esempio
Nell'esempio seguente viene importato un nodo libro da un secondo documento XML nel documento XML originale.
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
Nell'esempio viene usato il file , books.xml, come input.
<?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>
Commenti
Il nodo restituito non ha un elemento padre. Il nodo di origine non viene modificato o rimosso dal documento originale; ImportNode crea una copia del nodo di origine.
L'importazione di un nodo crea un XmlNode oggetto di proprietà del documento di importazione, con Name e NodeType identico al nodo di origine. Il nuovo oggetto include anche gli attributi correlati agli spazi dei nomi (Prefix, LocalNamee NamespaceURI).
A seconda del tipo di nodo del nodo importato e del valore del deep parametro, le informazioni aggiuntive vengono copiate in base alle esigenze. Questo metodo tenta di eseguire il mirroring del comportamento previsto se un frammento di origine XML o HTML è stato copiato da un documento a un altro (riconoscendo che, nel caso XML, i due documenti potrebbero avere DTD diversi).
Nella tabella seguente viene descritto il comportamento specifico per ogni XmlNodeTypeoggetto .
| Xmlnodetype | ImportNode(true) | ImportNode(false) |
|---|---|---|
| Attribute | La Specified proprietà è impostata su true sull'oggetto generato XmlAttribute. I discendenti dell'origine XmlAttribute vengono importati in modo ricorsivo e i nodi risultanti riassemblati per formare il sottoalbero corrispondente. |
Il deep parametro non si applica ai XmlAttribute nodi, ma li contiene sempre quando vengono importati. |
| CData | Copia il nodo, inclusi i relativi dati. | Copia il nodo, inclusi i relativi dati. |
| Commento | Copia il nodo, inclusi i relativi dati. | Copia il nodo, inclusi i relativi dati. |
| DocumentFragment | I discendenti del nodo di origine vengono importati in modo ricorsivo e i nodi risultanti riassemblati per formare il sottoalbero corrispondente. | Viene generato un vuoto XmlDocumentFragment . |
| Tipo di documento | Copia il nodo, inclusi i relativi dati.* | Copia il nodo, inclusi i relativi dati.* |
| Elemento | I discendenti dell'elemento di origine e i relativi nodi di attributo specificati vengono importati in modo ricorsivo e i nodi risultanti riassemblati per formare il sottoalbero corrispondente. Nota: gli attributi predefiniti non vengono copiati. Se il documento importato in definisce gli attributi predefiniti per questo nome di elemento, tali attributi vengono assegnati. |
I nodi di attributo specificati dell'elemento di origine vengono importati e i nodi generati XmlAttribute vengono collegati all'oggetto generato XmlElement.Nota: gli attributi predefiniti non vengono copiati. Se il documento importato in definisce gli attributi predefiniti per questo nome di elemento, tali attributi vengono assegnati. |
| EntityReference | Poiché i documenti di origine e di destinazione potrebbero avere le entità definite in modo diverso, questo metodo copia solo il XmlEntityReference nodo. Il testo sostitutivo non è incluso. Se il documento di destinazione ha definito l'entità, viene assegnato il relativo valore. | Poiché i documenti di origine e di destinazione potrebbero avere le entità definite in modo diverso, questo metodo copia solo il XmlEntityReference nodo. Il testo sostitutivo non è incluso. Se il documento di destinazione ha definito l'entità, viene assegnato il relativo valore. |
| Istruzione di Elaborazione | Copia il valore di destinazione e di dati dal nodo importato. | Copia il valore di destinazione e di dati dal nodo importato. |
| Text | Copia il nodo, inclusi i relativi dati. | Copia il nodo, inclusi i relativi dati. |
| SignificantWhitespace | Copia il nodo, inclusi i relativi dati. | Copia il nodo, inclusi i relativi dati. |
| Spazi vuoti | Copia il nodo, inclusi i relativi dati. | Copia il nodo, inclusi i relativi dati. |
| XmlDeclaration | Copia il valore di destinazione e di dati dal nodo importato. | Copia il valore di destinazione e di dati dal nodo importato. |
| Tutti gli altri tipi di nodo. | Questi tipi di nodo non possono essere importati. | Questi tipi di nodo non possono essere importati. |
*Anche se i nodi DocumentType possono essere importati, un documento può avere un solo DocumentType. Se il documento dispone attualmente di un nodo DocumentType, è necessario rimuoverlo prima di aggiungerne uno nuovo.