Aracılığıyla paylaş


XmlDocument.ImportNode(XmlNode, Boolean) Yöntem

Tanım

Bir 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

Düğüm türü içeri aktarılamaz.

Örnekler

Aşağıdaki örnek, ikinci bir XML belgesinden özgün XML belgesine bir kitap düğümünü içeri aktarır.

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ş books.xmlolarak dosyası 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.

Bir düğümü içeri aktarmak, 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, XML veya HTML kaynağının bir parçası bir belgeden diğerine kopyalanırsa beklenen davranışı yansıtmaya çalışır (XML örneğinde iki belgenin farklı DTD'leri olabileceğini fark eder).

Aşağıdaki tabloda her XmlNodeTypebirine özgü davranış açıklanmaktadır.

Xmlnodetype ImportNode(true) ImportNode(false)
Özellik Specified özelliği, oluşturulan XmlAttributeüzerinde olarak true ayarlanır. 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 alınır. 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 dahil olmak üzere düğümü kopyalar. Verileri dahil olmak üzere düğümü kopyalar.
Comment Verileri dahil olmak üzere düğümü kopyalar. Verileri 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 için yeniden bir araya alınır. Boş XmlDocumentFragment bir oluşturulur.
BelgeTürü 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 alınır.

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.
İşlem Talimatı İçeri aktarılan düğümden hedef ve veri değerini kopyalar. İçeri aktarılan düğümden hedef ve veri değerini kopyalar.
Metin Verileri dahil olmak üzere düğümü kopyalar. Verileri dahil olmak üzere düğümü kopyalar.
Önemli Boşluk Verileri dahil olmak üzere düğümü kopyalar. Verileri dahil olmak üzere düğümü kopyalar.
Boşluk Verileri dahil olmak üzere düğümü kopyalar. Verileri dahil olmak üzere düğümü kopyalar.
XML Bildirimi İç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, belgenin yalnızca bir DocumentType'ı olabilir. Belgenin şu anda bir DocumentType düğümü varsa, yeni bir tane eklemeden önce kaldırılmalıdır.

Şunlara uygulanır