XmlDocument.ImportNode(XmlNode, Boolean) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Düğümü başka bir belgeden geçerli belgeye aktarır.
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
Parametreler
- node
- XmlNode
İçeri aktarılan düğüm.
- deep
- Boolean
true
derin bir kopya gerçekleştirmek için; aksi takdirde , false
.
Döndürülenler
İçeri aktarılan XmlNode.
Özel durumlar
İçeri aktarılamayan bir düğüm türünde bu yöntemi çağırma.
Örnekler
Aşağıdaki örnek ikinci bir XML belgesinden özgün XML belgesine kitap düğümünü içeri aktarır.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
//Create the XmlDocument.
XmlDocument^ doc = gcnew 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 = gcnew 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 );
}
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
Örnekte giriş olarak dosyası books.xml
kullanılır.
<?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>
Açıklamalar
Döndürülen düğümün üst öğesi yok. Kaynak düğüm değiştirilmez veya özgün belgeden kaldırılmaz; ImportNode
kaynak düğümün bir kopyasını oluşturur.
Düğümün içeri aktarılması, içeri aktarılan belgenin sahip olduğu ve NodeType kaynak düğümle Name aynı olan bir XmlNode
nesne oluşturur. Yeni nesnenin ad alanlarıyla (Prefix, LocalNameve NamespaceURI) ilgili öznitelikleri de vardır.
İçeri aktarılan düğümün düğüm türüne ve parametresinin deep
değerine bağlı olarak, ek bilgiler uygun şekilde kopyalanır. Bu yöntem, bir XML veya HTML kaynağı parçası bir belgeden diğerine kopyalandıysa beklenen davranışı yansıtmaya çalışır (XML örneğinde iki belgenin farklı DTD'leri olabileceğini fark eder).
Aşağıdaki tabloda her XmlNodeTypeöğesine özgü davranış açıklanmaktadır.
Xmlnodetype | ImportNode(true) | ImportNode(false) |
---|---|---|
Öznitelik | Specified özelliği, oluşturulan XmlAttributeüzerinde olarak ayarlanırtrue . Kaynağın XmlAttribute alt öğeleri özyinelemeli olarak içeri aktarılır ve sonuçta elde edilen düğümler karşılık gelen alt ağacı oluşturmak için yeniden bir araya gelir. |
deep parametresi düğümler için XmlAttribute geçerli değildir; içeri aktarıldığında her zaman alt öğelerini yanlarında taşırlar. |
Cdata | Verileri de dahil olmak üzere düğümü kopyalar. | Verileri de dahil olmak üzere düğümü kopyalar. |
Yorum | Verileri de dahil olmak üzere düğümü kopyalar. | Verileri de dahil olmak üzere düğümü kopyalar. |
Documentfragment | Kaynak düğümün alt öğeleri özyinelemeli olarak içeri aktarılır ve sonuçta elde edilen düğümler karşılık gelen alt ağacı oluşturmak üzere yeniden bir araya gelir. | Boş XmlDocumentFragment bir oluşturulur. |
Documenttype | Verileri dahil olmak üzere düğümü kopyalar.* | Verileri dahil olmak üzere düğümü kopyalar.* |
Öğe | Kaynak öğenin ve belirtilen öznitelik düğümlerinin alt öğeleri özyinelemeli olarak içeri aktarılır ve sonuçta elde edilen düğümler karşılık gelen alt ağacı oluşturmak için yeniden bir araya gelir. Not: Varsayılan öznitelikler kopyalanmaz. İçeri aktarılan belge bu öğe adı için varsayılan öznitelikleri tanımlıyorsa, bunlar atanır. |
Kaynak öğenin belirtilen öznitelik düğümleri içeri aktarılır ve oluşturulan XmlAttribute düğümler oluşturulan XmlElementöğesine eklenir.Not: Varsayılan öznitelikler kopyalanmaz. İçeri aktarılan belge bu öğe adı için varsayılan öznitelikleri tanımlıyorsa, bunlar atanır. |
EntityReference | Kaynak ve hedef belgelerde farklı tanımlanmış varlıklar olabileceğinden, bu yöntem yalnızca düğümü kopyalar XmlEntityReference . Değiştirme metni dahil değildir. Hedef belgede tanımlı varlık varsa, değeri atanır. | Kaynak ve hedef belgelerde farklı tanımlanmış varlıklar olabileceğinden, bu yöntem yalnızca düğümü kopyalar XmlEntityReference . Değiştirme metni dahil değildir. Hedef belgede tanımlı varlık varsa, değeri atanır. |
Processingınstruction | İçeri aktarılan düğümden hedef ve veri değerini kopyalar. | İçeri aktarılan düğümden hedef ve veri değerini kopyalar. |
Metin | Verileri de dahil olmak üzere düğümü kopyalar. | Verileri de dahil olmak üzere düğümü kopyalar. |
SignificantWhitespace | Verileri de dahil olmak üzere düğümü kopyalar. | Verileri de dahil olmak üzere düğümü kopyalar. |
Boşluk | Verileri de dahil olmak üzere düğümü kopyalar. | Verileri de dahil olmak üzere düğümü kopyalar. |
Xmldeclaration | İçeri aktarılan düğümden hedef ve veri değerini kopyalar. | İçeri aktarılan düğümden hedef ve veri değerini kopyalar. |
Diğer tüm düğüm türleri. | Bu düğüm türleri içeri aktarılamaz. | Bu düğüm türleri içeri aktarılamaz. |
*DocumentType düğümleri içeri aktarılsa da, belgede yalnızca bir DocumentType bulunabilir. Belgenin şu anda bir DocumentType düğümü varsa, yenisini eklemeden önce kaldırılmalıdır.