Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il metodo ImportNode è il meccanismo in base al quale un nodo o un intero sottoalbero del nodo viene copiato da un XmlDocument a un altro. Il nodo restituito dalla chiamata è una copia del nodo dal documento di origine, inclusi i valori di attributo, il nome del nodo, il tipo di nodo e tutti gli attributi correlati allo spazio dei nomi, ad esempio il prefisso, il nome locale e l'URI (Uniform Resource Identifier). Il documento di origine non viene modificato. Dopo aver importato il nodo, è comunque necessario aggiungerlo all'albero usando uno dei metodi usati per inserire nodi.
Quando il nodo è collegato al nuovo documento, il nuovo documento è proprietario del nodo. Il motivo è che ogni nodo, al momento della creazione, dispone di un documento proprietario, anche se i nodi vengono creati in frammenti di documento separati. Si tratta di un requisito del DOM (Document Object Model) XML ed è imposto dal design di creazione della factory nella classe XmlDocument. Ad esempio, CreateElement, è l'unico modo per creare nuovi nodi.
A seconda del tipo di nodo del nodo importato e del valore del parametro profondo , 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, tenendo conto del fatto che per XML, i due documenti possono avere definizioni di tipi di documento diverse (DTD).
Nella tabella seguente viene descritto il comportamento specifico per ogni tipo di nodo che è possibile importare.
| Tipo di nodo | il parametro deep è true | il parametro deep è false |
|---|---|---|
| XmlAttribute | l'oggetto Specified è impostato su true in XmlAttribute. I discendenti dell'xmlAttribute di origine vengono importati in modo ricorsivo e i nodi risultanti riassemblati per formare il sottoalbero corrispondente. | Il parametro deep non si applica ai nodi XmlAttribute , perché trasportano sempre i nodi figlio con essi quando vengono importati. |
| XmlCDataSection | Copia il nodo, inclusi i relativi dati. | Copia il nodo, inclusi i relativi dati. |
| XmlComment | Copia il nodo, inclusi i relativi dati. | Copia il nodo, inclusi i relativi dati. |
| XmlDocumentFragment | I discendenti del nodo di origine vengono importati in modo ricorsivo e i nodi risultanti riassemblati per formare il sottoalbero corrispondente. | Viene creato un xmlDocumentFragment vuoto. |
| TipoDocumentoXml | Copia il nodo, inclusi i relativi dati.* | Copia il nodo, inclusi i relativi dati.* |
| XmlElement | I discendenti dell'elemento di origine 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 XmlAttribute generati vengono collegati al nuovo elemento. I nodi discendenti non vengono copiati. 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. |
| XmlEntityReference | Poiché i documenti di origine e di destinazione potrebbero avere le entità definite in modo diverso, questo metodo copia solo il nodo XmlEntityReference . 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 nodo XmlEntityReference . Il testo sostitutivo non è incluso. Se il documento di destinazione ha definito l'entità, viene assegnato il relativo valore. |
| Istruzione di Elaborazione XML | Copia il valore di destinazione e di dati dal nodo importato. | Copia il valore di destinazione e di dati dal nodo importato. |
| XmlText | Copia il nodo, inclusi i relativi dati. | Copia il nodo, inclusi i relativi dati. |
| XmlSignificantWhitespace | Copia il nodo, inclusi i relativi dati. | Copia il nodo, inclusi i relativi dati. |
| XmlWhitespace | 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. |
Annotazioni
Anche se i nodi DocumentType possono essere importati, un documento può avere un solo DocumentType. Quindi, dopo aver importato il tipo di documento, prima di inserirlo nell'albero, è necessario assicurarsi che non sia presente alcun tipo di documento nel documento. Per informazioni sulla rimozione di nodi, vedere Rimozione di nodi, contenuto e valori da un documento XML.