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