次の方法で共有


XmlElement.CloneNode メソッド

ノードの複製を作成します。

Overrides Public Function CloneNode( _
   ByVal deep As Boolean _) As XmlNode
[C#]
public override XmlNode CloneNode(booldeep);
[C++]
public: XmlNode* CloneNode(booldeep);
[JScript]
public override function CloneNode(
   deep : Boolean) : XmlNode;

パラメータ

  • deep
    指定したノードの下にあるサブツリーのクローンを再帰的に作成する場合は true 。指定したノードだけ (および、そのノードが XmlElement の場合はその属性) のクローンを作成する場合は false

戻り値

クローンとして作成されたノード。

解説

このメソッドは、ノードのコピー コンストラクタとして機能します。複製されたノードには親がありません。 ParentNode は null 参照 (Visual Basic では Nothing) を返します。

使用例

[Visual Basic, C#, C++] 新しい要素を作成し、そのクローンを作成して、両方の要素を XML ドキュメントに追加する例を次に示します。

 
Option Explicit
Option Strict

Imports System
Imports System.IO
Imports System.Xml

Public Class Sample
    
    Public Shared Sub Main()
        
        Dim doc As New XmlDocument()
        doc.Load("2books.xml")
        
        ' Create a new element.
        Dim elem As XmlElement = doc.CreateElement("misc")
        elem.InnerText = "hardcover"
        elem.SetAttribute("publisher", "WorldWide Publishing")
        
        ' Clone the element so we can add one to each of the book nodes.
        Dim elem2 As XmlNode = elem.CloneNode(True)
        
        ' Add the new elements.
        doc.DocumentElement.FirstChild.AppendChild(elem)
        doc.DocumentElement.LastChild.AppendChild(elem2)
        
        Console.WriteLine("Display the modified XML...")
        doc.Save(Console.Out)
    End Sub 'Main 
End Class 'Sample

[C#] 
using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.Load("2books.xml");

    // Create a new element.
    XmlElement elem = doc.CreateElement("misc");
    elem.InnerText = "hardcover";
    elem.SetAttribute("publisher", "WorldWide Publishing");

    // Clone the element so we can add one to each of the book nodes.
    XmlNode elem2 = elem.CloneNode(true);

    // Add the new elements.
    doc.DocumentElement.FirstChild.AppendChild(elem);
    doc.DocumentElement.LastChild.AppendChild(elem2);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

[C++] 
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;

int main()
{

    XmlDocument* doc = new XmlDocument();
    doc->Load(S"2books.xml");

    // Create a new element.
    XmlElement* elem = doc->CreateElement(S"misc");
    elem->InnerText = S"hardcover";
    elem->SetAttribute(S"publisher", S"WorldWide Publishing");

    // Clone the element so we can add one to each of the book nodes.
    XmlNode* elem2 = elem->CloneNode(true);

    // Add the new elements.
    doc->DocumentElement->FirstChild->AppendChild(elem);
    doc->DocumentElement->LastChild->AppendChild(elem2);

    Console::WriteLine(S"Display the modified XML...");
    doc->Save(Console::Out);
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

XmlElement クラス | XmlElement メンバ | System.Xml 名前空間