XmlDocument.ImportNode(XmlNode, Boolean) Método

Definição

Importa um nó de outro documento para o documento atual.

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

Parâmetros

node
XmlNode

O nó a ser importado.

deep
Boolean

true realizar um clone profundo; caso contrário, false.

Devoluções

Os importados XmlNode.

Exceções

O tipo de nó não pode ser importado.

Exemplos

O exemplo seguinte importa um nó livro de um segundo documento XML para o documento XML original.

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

O exemplo usa o ficheiro , books.xmlcomo entrada.

<?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>

Observações

O nó devolvido não tem pai. O nó de origem não é alterado nem removido do documento original; ImportNode cria uma cópia do nó de origem.

Importar um nó cria um XmlNode objeto pertencente ao documento importador, com Name e NodeType idêntico ao nó de origem. O novo objeto também tem os atributos relacionados com os namespaces (Prefix, LocalName, e NamespaceURI).

Dependendo do tipo de nó do nó importado e do valor do deep parâmetro, é copiada informação adicional conforme apropriado. Este método tenta espelhar o comportamento esperado se um fragmento de fonte XML ou HTML fosse copiado de um documento para outro (reconhecendo que, no caso XML, os dois documentos poderiam ter DTDs diferentes).

A tabela seguinte descreve o comportamento específico para cada XmlNodeType.

XmlNodeType ImportNode(true) ImportNode(false)
Attribute A Specified propriedade é definida como true em o gerado XmlAttribute. Os descendentes da fonte XmlAttribute são importados recursivamente e os nós resultantes são reconstituídos para formar a subárvore correspondente. O deep parâmetro não se aplica aos XmlAttribute nós; eles transportam sempre os seus filhos consigo quando são importados.
CData Copia o nó, incluindo seus dados. Copia o nó, incluindo seus dados.
Comment Copia o nó, incluindo seus dados. Copia o nó, incluindo seus dados.
DocumentFragment Os descendentes do nó de origem são importados de forma recursiva e os nós resultantes são reorganizados para formar a subárvore correspondente. Gera-se um vazio XmlDocumentFragment .
Tipo de Documento Copia o nó, incluindo os seus dados.* Copia o nó, incluindo os seus dados.*
Elemento Os descendentes do elemento fonte e dos seus nós de atributo especificados são importados recursivamente e os nós resultantes são reconstituídos para formar a subárvore correspondente.

Nota: Os atributos padrão não são copiados. Se o documento que está sendo importado definir atributos padrão para esse nome de elemento, eles serão atribuídos.
Os nós de atributo especificados do elemento fonte são importados, e os nós gerados XmlAttribute são ligados ao elemento gerado XmlElement.

Nota: Os atributos padrão não são copiados. Se o documento que está sendo importado definir atributos padrão para esse nome de elemento, eles serão atribuídos.
EntityReference Como os documentos de origem e destino podiam ter as entidades definidas de forma diferente, este método apenas copia o XmlEntityReference nó. O texto de substituição não está incluído. Se o documento de destino tiver a entidade definida, seu valor será atribuído. Como os documentos de origem e destino podiam ter as entidades definidas de forma diferente, este método apenas copia o XmlEntityReference nó. O texto de substituição não está incluído. Se o documento de destino tiver a entidade definida, seu valor será atribuído.
Instruções de processamento Copia o destino e o valor de dados do nó importado. Copia o destino e o valor de dados do nó importado.
Text Copia o nó, incluindo seus dados. Copia o nó, incluindo seus dados.
Espaço branco significativo Copia o nó, incluindo seus dados. Copia o nó, incluindo seus dados.
Whitespace Copia o nó, incluindo seus dados. Copia o nó, incluindo seus dados.
Declaração XML Copia o destino e o valor de dados do nó importado. Copia o destino e o valor de dados do nó importado.
Todos os outros tipos de nós. Esses tipos de nó não podem ser importados. Esses tipos de nó não podem ser importados.

*Embora os nós DocumentType possam ser importados, um documento só pode ter um DocumentType. Se o documento tiver atualmente um nó DocumentType, este deve ser removido antes de adicionar um novo.

Aplica-se a