XmlNode.CloneNode(Boolean) Metod

Definition

Skapar en dubblett av noden när den åsidosättas i en härledd klass.

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

Parametrar

deep
Boolean

true för att rekursivt klona underträdet under den angivna noden. false för att endast klona själva noden.

Returer

Den klonade noden.

Undantag

Anropa den här metoden på en nodtyp som inte kan klonas.

Exempel

I följande exempel visas skillnaden mellan en djup och ytlig klon.

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

Kommentarer

Den här metoden fungerar som en kopieringskonstruktor för noder. Den duplicerade noden har ingen överordnad (ParentNode returnerar null).

I följande tabell beskrivs det specifika beteendet för varje XmlNodeType.

XmlNodeType CloneNode(true) CloneNode(false)
Attribute Klonar attributnoden, inklusive underordnade noder. Klonar attributnoden, inklusive underordnade noder.
CData Klonar CData-noden, inklusive dess datainnehåll. Klonar CData-noden, inklusive dess datainnehåll.
Comment Klonar kommentarsnoden, inklusive dess textinnehåll. Klonar kommentarsnoden, inklusive dess textinnehåll.
Dokument Klonar dokumentnoden, inklusive eventuella underordnade noder. Klonar dokumentnoden.
DocumentFragment Klonar noden för dokumentfragmentet, inklusive eventuella underordnade noder. Klonar noden för dokumentfragmentet.
Dokumenttyp Klonar noden för dokumenttyp. Klonar noden för dokumenttyp.
Element Klonar elementnoden, dess attribut och eventuella underordnade noder. Klonar elementnoden och dess attribut, inklusive eventuella standardattribut.
Entity Entitetsnoder kan inte klonas. Entitetsnoder kan inte klonas.
EntityReference Klonar entitetsreferensnoden. Ersättningstexten ingår inte. Klonar entitetsreferensnoden. Ersättningstexten ingår inte.
Notation Notationsnoder kan inte klonas. Notationsnoder kan inte klonas.
bearbetningsinstruktion Klonar bearbetningsinstruktionsnoden, inklusive dess mål och data. Klonar bearbetningsinstruktionsnoden, inklusive dess mål och data.
SignificantWhitespace Klonar den betydande noden för tomt utrymme, inklusive dess datavärde. Klonar den betydande noden för tomt utrymme, inklusive dess datavärde.
Text Klonar textnoden, inklusive dess datavärde. Klonar textnoden, inklusive dess datavärde.
Whitespace Klonar noden för tomt utrymme, inklusive dess datavärde. Klonar noden för tomt utrymme, inklusive dess datavärde.
XML-deklaration Klonar XmlDeclaration-noden, inklusive dess datavärde. Klonar XmlDeclaration-noden, inklusive dess datavärde.
Alla andra nodtyper. Dessa nodtyper kan inte klonas. Dessa nodtyper kan inte klonas.

Gäller för