XmlDocument.ImportNode(XmlNode, Boolean) Metódus

Definíció

Csomópont importálása egy másik dokumentumból az aktuális dokumentumba.

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éterek

node
XmlNode

Az importálandó csomópont.

deep
Boolean

truemély klónozás végrehajtása; egyéb esetben. false

Válaszok

Az importált XmlNode.

Kivételek

A csomóponttípus nem importálható.

Példák

Az alábbi példa egy könyvcsomópontot importál egy második XML-dokumentumból az eredeti XML-dokumentumba.

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

A példa a fájlt books.xmlhasználja bemenetként.

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

Megjegyzések

A visszaadott csomópontnak nincs szülője. A forráscsomópont nincs módosítva vagy eltávolítva az eredeti dokumentumból; ImportNode létrehoz egy másolatot a forráscsomópontról.

A csomópont importálása létrehoz egy XmlNode objektumot, amely az importáló dokumentum tulajdonában van, a forráscsomóponttal Name azonos és NodeType azonos. Az új objektum a névterekhez (Prefixés LocalNameNamespaceURI) kapcsolódó attribútumokkal is rendelkezik.

Az importált csomópont csomóponttípusától és a paraméter értékétől deep függően a rendszer szükség szerint további információkat másol. Ez a módszer megkísérli tükrözni a várt viselkedést, ha egy XML- vagy HTML-forrástöredéket másoltak át egyik dokumentumból a másikba (felismerve, hogy az XML-esetben a két dokumentum különböző DTD-kkel rendelkezhet).

Az alábbi táblázat az egyes XmlNodeTypeviselkedéseket ismerteti.

XmlNodeType ImportNode(true) ImportNode(false)
Attribute A Specified tulajdonság a generált trueértékre XmlAttribute van állítva. A forrás XmlAttribute leszármazottait rekurzívan importálják, és az eredményül kapott csomópontokat újra összeszerelik a megfelelő részhalmaz létrehozásához. A deep paraméter nem vonatkozik a XmlAttribute csomópontokra; importáláskor mindig együtt hordozzák gyermekeiket.
CData Másolja a csomópontot, beleértve az adatait is. Másolja a csomópontot, beleértve az adatait is.
Megjegyzés Másolja a csomópontot, beleértve az adatait is. Másolja a csomópontot, beleértve az adatait is.
DocumentFragment A forráscsomópont leszármazottait rekurzívan importálja a rendszer, és az eredményül kapott csomópontokat újra összeszereli a megfelelő részhalmaz létrehozásához. A rendszer létrehoz egy üres elemet XmlDocumentFragment .
Dokumentumtípus Másolja a csomópontot, beleértve az adatait is.* Másolja a csomópontot, beleértve az adatait is.*
Elem A forráselem leszármazottai és a megadott attribútumcsomópontok rekurzívan importálva lesznek, és az eredményül kapott csomópontok újra össze vannak adva a megfelelő részhalmaz létrehozásához.

Megjegyzés: Az alapértelmezett attribútumok nem másolódnak. Ha az importálandó dokumentum az elemnév alapértelmezett attribútumait határozza meg, ezek lesznek hozzárendelve.
A rendszer importálja a forráselem megadott attribútumcsomópontjait, és a létrehozott XmlAttribute csomópontokat a létrehozott XmlElementcsomópontokhoz csatolja.

Megjegyzés: Az alapértelmezett attribútumok nem másolódnak. Ha az importálandó dokumentum az elemnév alapértelmezett attribútumait határozza meg, ezek lesznek hozzárendelve.
EntityReference Mivel a forrás- és céldokumentumok eltérően definiálhatják az entitásokat, ez a módszer csak a XmlEntityReference csomópontot másolja át. A helyettesítő szöveg nem szerepel a szövegben. Ha a céldokumentum definiálta az entitást, annak értéke hozzá lesz rendelve. Mivel a forrás- és céldokumentumok eltérően definiálhatják az entitásokat, ez a módszer csak a XmlEntityReference csomópontot másolja át. A helyettesítő szöveg nem szerepel a szövegben. Ha a céldokumentum definiálta az entitást, annak értéke hozzá lesz rendelve.
Feldolgozási utasítás Másolja a cél- és adatértéket az importált csomópontról. Másolja a cél- és adatértéket az importált csomópontról.
Szöveg Másolja a csomópontot, beleértve az adatait is. Másolja a csomópontot, beleértve az adatait is.
JelentősHelyköz Másolja a csomópontot, beleértve az adatait is. Másolja a csomópontot, beleértve az adatait is.
Whitespace Másolja a csomópontot, beleértve az adatait is. Másolja a csomópontot, beleértve az adatait is.
XML-nyilatkozat Másolja a cél- és adatértéket az importált csomópontról. Másolja a cél- és adatértéket az importált csomópontról.
Minden más csomóponttípus. Ezek a csomóponttípusok nem importálhatók. Ezek a csomóponttípusok nem importálhatók.

*Bár a DocumentType-csomópontok importálhatók, a dokumentumok csak egy DocumentType-et tartalmazhatnak. Ha a dokumentumnak jelenleg DocumentType csomópontja van, el kell távolítani, mielőtt újat ad hozzá.

A következőre érvényes: