XmlDocument.ImportNode(XmlNode, Boolean) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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á.