次の方法で共有


XmlNode.Clone メソッド

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

Public Overridable Function Clone() As XmlNode
[C#]
public virtual XmlNode Clone();
[C++]
public: virtual XmlNode* Clone();
[JScript]
public function Clone() : XmlNode;

戻り値

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

解説

XmlElement のクローンを作成すると、既定の属性を表すために XML プロセッサによって生成された値を含め、すべての属性とその値がコピーされます。このメソッドは、ノードとその下にあるサブツリーのクローンを再帰的に作成します。

Clone は、 CloneNode(true) の呼び出しと等価です。

XmlNodeType の固有の動作を次の表に示します。

XmlNodeType Clone
属性 子ノードを含めて、属性ノードのクローンを作成します。
CData データの内容を含めて、CData ノードのクローンを作成します。
Comment テキストの内容を含めて、コメント ノードのクローンを作成します。
Document 子ノードを含めて、ドキュメント ノードのクローンを作成します。
DocumentFragment 子ノードを含めて、ドキュメント フラグメント ノードのクローンを作成します。
DocumentType ドキュメント型ノードのクローンを作成します。
Element 要素ノード、その属性、および子ノードのクローンを作成します。
Entity エンティティ ノードのクローンは作成できません。
EntityReference エンティティ参照ノードのクローンを作成します。置換テキストは含まれません。
Notation 表記ノードのクローンは作成できません。
ProcessingInstruction 対象およびデータを含めて、処理命令ノードのクローンを作成します。
SignificantWhitespace データ値を含めて、有意な空白ノードのクローンを作成します。
Text データ値を含めて、テキスト ノードのクローンを作成します。
Whitespace データ値を含めて、空白ノードのクローンを作成します。
XmlDeclaration データ値を含めて、XmlDeclaration ノードのクローンを作成します。
その他のすべてのノード型。 これらのノード型はクローンを作成できません。

このメソッドは、ドキュメント オブジェクト モデル (DOM: Document Object Model) に対する Microsoft 拡張機能です。

使用例

[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.LoadXml("<book ISBN='1-861001-57-5'>" & _
                    "<title>Pride And Prejudice</title>" & _
                    "<price>19.95</price>" & _
                    "</book>")
        
        Dim root As XmlNode = doc.FirstChild
        
        'Clone the root node.  The cloned node includes
        'child nodes. This is similar to calling CloneNode(true).
        Dim clone As XmlNode = root.Clone()
        Console.WriteLine(clone.OuterXml)
    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.LoadXml("<book ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<price>19.95</price>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    //Clone the root node.  The cloned node includes
    //child nodes. This is similar to calling CloneNode(true).
    XmlNode clone = root.Clone();
    Console.WriteLine(clone.OuterXml);
  }
}

[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->LoadXml(S"<book ISBN='1-861001-57-5'>" 
                 S"<title>Pride And Prejudice</title>" 
                 S"<price>19.95</price>" 
                 S"</book>");

    XmlNode* root = doc->FirstChild;

    //Clone the root node.  The cloned node includes
    //child nodes. This is similar to calling CloneNode(true).
    XmlNode* clone = root->Clone();
    Console::WriteLine(clone->OuterXml);
}

[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

参照

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