XmlNode.CloneNode(Boolean) XmlNode.CloneNode(Boolean) XmlNode.CloneNode(Boolean) XmlNode.CloneNode(Boolean) Method

定義

派生クラスでオーバーライドされた場合は、ノードの複製を作成します。Creates a duplicate of the node, when overridden in a derived class.

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 Boolean Boolean Boolean

指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は falsetrue to recursively clone the subtree under the specified node; false to clone only the node itself.

戻り値

クローンとして作成されたノード。The cloned node.

例外

クローンを作成できないノード型でこのメソッドを呼び出しています。Calling this method on a node type that cannot be cloned.

次の例は、ディープクローンと浅い複製の違いを示しています。The following example shows the difference between a deep and shallow clone.

#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 'Sample

注釈

このメソッドは、ノードのコピーコンストラクターとして機能します。This method serves as a copy constructor for nodes. 重複するノードには親がParentNodeありnullません (を返します)。The duplicate node has no parent (ParentNode returns null).

次の表では、それぞれXmlNodeTypeの固有の動作について説明します。The following table describes the specific behavior for each XmlNodeType.

XmlNodeTypeXmlNodeType CloneNode (true)CloneNode(true) CloneNode (false)CloneNode(false)
属性Attribute 子ノードを含む属性ノードを複製します。Clones the attribute node, including child nodes. 子ノードを含む属性ノードを複製します。Clones the attribute node, including child nodes.
CDataCData データコンテンツを含む CData ノードを複製します。Clones the CData node, including its data content. データコンテンツを含む CData ノードを複製します。Clones the CData node, including its data content.
コメントComment コメントノード (テキストコンテンツを含む) を複製します。Clones the comment node, including its text content. コメントノード (テキストコンテンツを含む) を複製します。Clones the comment node, including its text content.
ドキュメントDocument 子ノードも含めて、ドキュメントノードを複製します。Clones the document node, including any child nodes. ドキュメントノードを複製します。Clones the document node.
DocumentFragmentDocumentFragment 子ノードも含めて、ドキュメントフラグメントノードを複製します。Clones the document fragment node, including any child nodes. ドキュメントフラグメントノードを複製します。Clones the document fragment node.
DocumentTypeDocumentType ドキュメント型ノードを複製します。Clones the document type node. ドキュメント型ノードを複製します。Clones the document type node.
要素Element 要素ノード、その属性、およびすべての子ノードを複製します。Clones the element node, its attributes, and any child nodes. 要素ノードとその属性 (既定の属性を含む) を複製します。Clones the element node and its attributes, including any default attributes.
エンティティEntity エンティティ ノードのクローンは作成できません。Entity nodes cannot be cloned. エンティティ ノードのクローンは作成できません。Entity nodes cannot be cloned.
EntityReferenceEntityReference エンティティ参照ノードを複製します。Clones the entity reference node. 置換テキストは含まれません。The replacement text is not included. エンティティ参照ノードを複製します。Clones the entity reference node. 置換テキストは含まれません。The replacement text is not included.
NotationNotation 表記ノードのクローンは作成できません。Notation nodes cannot be cloned. 表記ノードのクローンは作成できません。Notation nodes cannot be cloned.
ProcessingInstructionProcessingInstruction 処理命令ノード (ターゲットとデータを含む) を複製します。Clones the processing instruction node, including its target and data. 処理命令ノード (ターゲットとデータを含む) を複製します。Clones the processing instruction node, including its target and data.
SignificantWhitespaceSignificantWhitespace データ値を含む有意な空白ノードを複製します。Clones the significant white space node, including its data value. データ値を含む有意な空白ノードを複製します。Clones the significant white space node, including its data value.
テキストText データ値を含むテキストノードを複製します。Clones the text node, including its data value. データ値を含むテキストノードを複製します。Clones the text node, including its data value.
WhitespaceWhitespace データ値を含む、空白ノードを複製します。Clones the white space node, including its data value. データ値を含む、空白ノードを複製します。Clones the white space node, including its data value.
XmlDeclarationXmlDeclaration データ値を含む XmlDeclaration ノードを複製します。Clones the XmlDeclaration node, including its data value. データ値を含む XmlDeclaration ノードを複製します。Clones the XmlDeclaration node, including its data value.
その他のすべてのノード型。All other node types. これらのノードの種類は複製できません。These node types cannot be cloned. これらのノードの種類は複製できません。These node types cannot be cloned.

適用対象