XmlNode.CloneNode(Boolean) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
派生クラスでオーバーライドされた場合は、ノードの複製を作成します。
public:
abstract System::Xml::XmlNode ^ CloneNode(bool deep);
public abstract System.Xml.XmlNode CloneNode (bool deep);
abstract member CloneNode : bool -> System.Xml.XmlNode
Public MustOverride Function CloneNode (deep As Boolean) As XmlNode
パラメーター
- deep
- Boolean
指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true
。指定したノードだけのクローンを作成する場合は false
。
戻り値
クローンとして作成されたノード。
例外
クローンを作成できないノード型でこのメソッドを呼び出しています。
例
次の例は、ディープ クローンとシャロー クローンの違いを示しています。
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlDocument^ doc = gcnew XmlDocument;
doc->LoadXml( "<book ISBN='1-861001-57-5'>"
"<title>Pride And Prejudice</title>"
"<price>19.95</price>"
"</book>" );
XmlNode^ root = doc->FirstChild;
//Create a deep clone. The cloned node
//includes the child nodes.
XmlNode^ deep = root->CloneNode( true );
Console::WriteLine( deep->OuterXml );
//Create a shallow clone. The cloned node does not
//include the child nodes, but does include its attribute.
XmlNode^ shallow = root->CloneNode( false );
Console::WriteLine( shallow->OuterXml );
}
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;
//Create a deep clone. The cloned node
//includes the child nodes.
XmlNode deep = root.CloneNode(true);
Console.WriteLine(deep.OuterXml);
//Create a shallow clone. The cloned node does not
//include the child nodes, but does include its attribute.
XmlNode shallow = root.CloneNode(false);
Console.WriteLine(shallow.OuterXml);
}
}
Option Explicit
Option Strict
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
'Create a deep clone. The cloned node
'includes the child nodes.
Dim deep As XmlNode = root.CloneNode(True)
Console.WriteLine(deep.OuterXml)
'Create a shallow clone. The cloned node does not
'include the child nodes, but does include its attribute.
Dim shallow As XmlNode = root.CloneNode(False)
Console.WriteLine(shallow.OuterXml)
End Sub
End Class
注釈
このメソッドは、ノードのコピー コンストラクターとして機能します。 重複するノードには親がありません (ParentNode 戻り値 null
)。
次の表では、それぞれの XmlNodeType特定の動作について説明します。
XmlNodeType | CloneNode(true) | CloneNode(false) |
---|---|---|
属性 | 子ノードを含む属性ノードを複製します。 | 子ノードを含む属性ノードを複製します。 |
CData | データ コンテンツを含む CData ノードを複製します。 | データ コンテンツを含む CData ノードを複製します。 |
コメント | テキスト コンテンツを含むコメント ノードを複製します。 | テキスト コンテンツを含むコメント ノードを複製します。 |
ドキュメント | すべての子ノードを含むドキュメント ノードを複製します。 | ドキュメント ノードを複製します。 |
DocumentFragment | すべての子ノードを含むドキュメント フラグメント ノードを複製します。 | ドキュメント フラグメント ノードを複製します。 |
DocumentType | ドキュメントの種類のノードを複製します。 | ドキュメントの種類のノードを複製します。 |
要素 | 要素ノード、その属性、およびすべての子ノードを複製します。 | 既定の属性を含め、要素ノードとその属性を複製します。 |
エンティティ | エンティティ ノードのクローンは作成できません。 | エンティティ ノードのクローンは作成できません。 |
EntityReference | エンティティ参照ノードを複製します。 置換テキストは含まれません。 | エンティティ参照ノードを複製します。 置換テキストは含まれません。 |
表記 | 表記ノードのクローンは作成できません。 | 表記ノードのクローンは作成できません。 |
ProcessingInstruction | ターゲットとデータを含む処理命令ノードを複製します。 | ターゲットとデータを含む処理命令ノードを複製します。 |
SignificantWhitespace | データ値を含む、重要な空白ノードを複製します。 | データ値を含む、重要な空白ノードを複製します。 |
Text | データ値を含むテキスト ノードを複製します。 | データ値を含むテキスト ノードを複製します。 |
空白 | データ値を含む空白ノードを複製します。 | データ値を含む空白ノードを複製します。 |
XmlDeclaration | データ値を含む XmlDeclaration ノードを複製します。 | データ値を含む XmlDeclaration ノードを複製します。 |
その他のすべてのノード タイプ。 | これらのノード タイプは複製できません。 | これらのノード タイプは複製できません。 |