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;
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 | 子ノードを含め、ドキュメント フラグメント ノードを複製します。 | ドキュメント フラグメント ノードを複製します。 |
| 文書タイプ | ドキュメントの種類のノードを複製します。 | ドキュメントの種類のノードを複製します。 |
| 要素 | 要素ノード、その属性、およびすべての子ノードを複製します。 | 既定の属性を含め、要素ノードとその属性を複製します。 |
| エンティティ | エンティティ ノードは複製できません。 | エンティティ ノードは複製できません。 |
| エンティティリファレンス | エンティティ参照ノードを複製します。 置換テキストは含まれません。 | エンティティ参照ノードを複製します。 置換テキストは含まれません。 |
| Notation | 表記ノードは複製できません。 | 表記ノードは複製できません。 |
| 処理命令 | ターゲットとデータを含む処理命令ノードを複製します。 | ターゲットとデータを含む処理命令ノードを複製します。 |
| SignificantWhitespace | データ値を含む重要な空白ノードを複製します。 | データ値を含む重要な空白ノードを複製します。 |
| テキスト | データ値を含むテキスト ノードを複製します。 | データ値を含むテキスト ノードを複製します。 |
| 空白 | データ値を含む空白ノードを複製します。 | データ値を含む空白ノードを複製します。 |
| XML宣言 | データ値を含む XmlDeclaration ノードを複製します。 | データ値を含む XmlDeclaration ノードを複製します。 |
| その他すべてのノード タイプ。 | これらのノードの種類は複製できません。 | これらのノードの種類は複製できません。 |