XmlDocument.ImportNode(XmlNode, Boolean) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Importerar en nod från ett annat dokument till det aktuella dokumentet.
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
Parametrar
- node
- XmlNode
Noden som importeras.
- deep
- Boolean
trueför att utföra en djup klon; annars . false
Returer
Den importerade XmlNode.
Undantag
Nodtypen kan inte importeras.
Exempel
I följande exempel importeras en boknod från ett andra XML-dokument till det ursprungliga XML-dokumentet.
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
I exemplet används filen , books.xmlsom indata.
<?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>
Kommentarer
Den returnerade noden har ingen överordnad nod. Källnoden ändras eller tas inte bort från det ursprungliga dokumentet. ImportNode skapar en kopia av källnoden.
När du importerar en nod skapas ett XmlNode objekt som ägs av det importerande dokumentet, med och Name identiskt med NodeType källnoden. Det nya objektet har även attribut som är relaterade till namnområden (Prefix, LocalNameoch NamespaceURI).
Beroende på nodtypen för den importerade noden och värdet för parametern deep kopieras ytterligare information efter behov. Den här metoden försöker spegla det förväntade beteendet om ett fragment av XML- eller HTML-källan kopierades från ett dokument till ett annat (med tanke på att de två dokumenten i XML-fallet kan ha olika DTD:er).
I följande tabell beskrivs det specifika beteendet för varje XmlNodeType.
| XmlNodeType | ImportNode(true) | ImportNode(false) |
|---|---|---|
| Attribute | Egenskapen Specified är inställd true på på den genererade XmlAttribute. Källans XmlAttribute underordnade värden importeras rekursivt och de resulterande noderna samlas på nytt för att bilda motsvarande underträd. |
Parametern gäller inte för deep noder. De XmlAttribute bär alltid med sig sina underordnade när de importeras. |
| CData | Kopierar noden, inklusive dess data. | Kopierar noden, inklusive dess data. |
| Comment | Kopierar noden, inklusive dess data. | Kopierar noden, inklusive dess data. |
| DocumentFragment | Källnodens underordnade noder importeras rekursivt och de resulterande noderna samlas på nytt för att bilda motsvarande underträd. | En tom XmlDocumentFragment genereras. |
| Dokumenttyp | Kopierar noden, inklusive dess data.* | Kopierar noden, inklusive dess data.* |
| Element | Underordnade till källelementet och dess angivna attributnoder importeras rekursivt och de resulterande noderna samlas på nytt för att bilda motsvarande underträd. Obs! Standardattribut kopieras inte. Om dokumentet som importeras till definierar standardattribut för det här elementnamnet tilldelas de. |
Angivna attributnoder för källelementet importeras och de genererade noderna XmlAttribute kopplas till den genererade XmlElement.Obs! Standardattribut kopieras inte. Om dokumentet som importeras till definierar standardattribut för det här elementnamnet tilldelas de. |
| EntityReference | Eftersom käll- och måldokumenten kan ha entiteterna definierade på olika sätt kopierar XmlEntityReference den här metoden endast noden. Ersättningstexten ingår inte. Om måldokumentet har definierat entiteten tilldelas dess värde. | Eftersom käll- och måldokumenten kan ha entiteterna definierade på olika sätt kopierar XmlEntityReference den här metoden endast noden. Ersättningstexten ingår inte. Om måldokumentet har definierat entiteten tilldelas dess värde. |
| bearbetningsinstruktion | Kopierar mål- och datavärdet från den importerade noden. | Kopierar mål- och datavärdet från den importerade noden. |
| Text | Kopierar noden, inklusive dess data. | Kopierar noden, inklusive dess data. |
| SignificantWhitespace | Kopierar noden, inklusive dess data. | Kopierar noden, inklusive dess data. |
| Whitespace | Kopierar noden, inklusive dess data. | Kopierar noden, inklusive dess data. |
| XML-deklaration | Kopierar mål- och datavärdet från den importerade noden. | Kopierar mål- och datavärdet från den importerade noden. |
| Alla andra nodtyper. | Det går inte att importera dessa nodtyper. | Det går inte att importera dessa nodtyper. |
*Även om DocumentType-noder kan importeras kan ett dokument bara ha en DocumentType. Om dokumentet för närvarande har en DocumentType-nod måste det tas bort innan du lägger till en ny.