XmlDocument.ImportNode(XmlNode, Boolean) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Importuje uzel z jiného dokumentu do aktuálního dokumentu.
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
Parametry
- node
- XmlNode
Importovaný uzel.
- deep
- Boolean
truek provedení hloubkového klonu; v opačném případě . false
Návraty
Importovaný XmlNode.
Výjimky
Typ uzlu nelze importovat.
Příklady
Následující příklad naimportuje uzel knihy z druhého dokumentu XML do původního dokumentu XML.
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
Příklad používá soubor , books.xmljako vstup.
<?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>
Poznámky
Vrácený uzel nemá žádný nadřazený uzel. Zdrojový uzel se nezmění ani neodebere z původního dokumentu; ImportNode vytvoří kopii zdrojového uzlu.
Import uzlu vytvoří XmlNode objekt vlastněný importovaným dokumentem a NodeType shodný se Name zdrojovým uzlem. Nový objekt má také atributy související s obory názvů (Prefix, LocalNamea NamespaceURI).
V závislosti na typu uzlu importovaného uzlu a hodnotě parametru deep se podle potřeby zkopírují další informace. Tato metoda se pokusí zrcadlit očekávané chování v případě, že se fragment xml nebo zdroje HTML zkopíroval z jednoho dokumentu do druhého (což v případě XML znamená, že tyto dva dokumenty můžou mít jiné DTD).
Následující tabulka popisuje konkrétní chování každého XmlNodeType.
| Xmlnodetype | ImportNode(true) | ImportNode(false) |
|---|---|---|
| Vlastnost | Vlastnost Specified je nastavena na true vygenerovaný XmlAttribute. Potomky zdroje XmlAttribute se rekurzivně importují a výsledné uzly se znovu sestaví, aby vytvořily odpovídající podstrom. |
Parametr deep se nevztahuje na XmlAttribute uzly; při importu vždy přenášejí své podřízené položky. |
| CData | Zkopíruje uzel včetně jeho dat. | Zkopíruje uzel včetně jeho dat. |
| Komentář | Zkopíruje uzel včetně jeho dat. | Zkopíruje uzel včetně jeho dat. |
| Documentfragment | Potomky zdrojového uzlu se rekurzivně naimportují a výsledné uzly se znovu sestaví a vytvoří odpovídající podstrom. | Vygeneruje se prázdný XmlDocumentFragment . |
| Typ dokumentu | Zkopíruje uzel včetně jeho dat.* | Zkopíruje uzel včetně jeho dat.* |
| prvek | Potomky zdrojového elementu a jeho zadaných uzlů atributů se rekurzivně importují a výsledné uzly se znovu sestaví tak, aby vytvořily odpovídající podstrom. Poznámka: Výchozí atributy se nekopírují. Pokud dokument importovaný do definuje výchozí atributy pro tento název elementu, jsou přiřazeny. |
Zadané uzly atributů zdrojového prvku jsou importovány a XmlAttribute generované uzly jsou připojeny k vygenerovanému XmlElementprvku .Poznámka: Výchozí atributy se nekopírují. Pokud dokument importovaný do definuje výchozí atributy pro tento název elementu, jsou přiřazeny. |
| EntityReference | Vzhledem k tomu, že zdrojové a cílové dokumenty mohou mít entity definované odlišně, tato metoda zkopíruje XmlEntityReference pouze uzel. Náhradní text není zahrnut. Pokud má cílový dokument definovanou entitu, přiřadí se její hodnota. | Vzhledem k tomu, že zdrojové a cílové dokumenty mohou mít entity definované odlišně, tato metoda zkopíruje XmlEntityReference pouze uzel. Náhradní text není zahrnut. Pokud má cílový dokument definovanou entitu, přiřadí se její hodnota. |
| PokynKeZpracování | Zkopíruje cílovou hodnotu a hodnotu dat z importovaného uzlu. | Zkopíruje cílovou hodnotu a hodnotu dat z importovaného uzlu. |
| Text | Zkopíruje uzel včetně jeho dat. | Zkopíruje uzel včetně jeho dat. |
| SignificantWhitespace | Zkopíruje uzel včetně jeho dat. | Zkopíruje uzel včetně jeho dat. |
| Prázdné místo | Zkopíruje uzel včetně jeho dat. | Zkopíruje uzel včetně jeho dat. |
| Deklarace XML | Zkopíruje cílovou hodnotu a hodnotu dat z importovaného uzlu. | Zkopíruje cílovou hodnotu a hodnotu dat z importovaného uzlu. |
| Všechny ostatní typy uzlů. | Tyto typy uzlů nelze importovat. | Tyto typy uzlů nelze importovat. |
*I když lze importovat uzly DocumentType, dokument může mít pouze jeden typ DocumentType. Pokud má dokument aktuálně uzel DocumentType, je nutné ho před přidáním nového odebrat.