XmlAttribute.CloneNode(Boolean) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt ein Duplikat dieses Knotens.
public:
override System::Xml::XmlNode ^ CloneNode(bool deep);
public override System.Xml.XmlNode CloneNode (bool deep);
override this.CloneNode : bool -> System.Xml.XmlNode
Public Overrides Function CloneNode (deep As Boolean) As XmlNode
Parameter
- deep
- Boolean
true
, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false
, wenn nur der Knoten selbst geklont werden soll.
Gibt zurück
Das Knotenduplikat.
Beispiele
Im folgenden Beispiel wird zum Hinzufügen eines Attributs zu zwei verschiedenen Elementknoten verwendet CloneNode
.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
//Create an XmlDocument.
XmlDocument^ doc = gcnew XmlDocument;
doc->Load( "2elems.xml" );
//Create an attribute.
XmlAttribute^ attr;
attr = doc->CreateAttribute( "bk", "genre", "urn:samples" );
attr->Value = "novel";
//Add the attribute to the first book.
XmlElement^ currNode = dynamic_cast<XmlElement^>(doc->DocumentElement->FirstChild);
currNode->SetAttributeNode( attr );
//An attribute cannot be added to two different elements.
//You must clone the attribute and add it to the second book.
XmlAttribute^ attr2;
attr2 = dynamic_cast<XmlAttribute^>(attr->CloneNode( true ));
currNode = dynamic_cast<XmlElement^>(doc->DocumentElement->LastChild);
currNode->SetAttributeNode( attr2 );
Console::WriteLine( "Display the modified XML...\r\n" );
XmlTextWriter^ writer = gcnew XmlTextWriter( Console::Out );
writer->Formatting = Formatting::Indented;
doc->WriteContentTo( writer );
}
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
//Create an XmlDocument.
XmlDocument doc = new XmlDocument();
doc.Load("2elems.xml");
//Create an attribute.
XmlAttribute attr;
attr = doc.CreateAttribute("bk","genre","urn:samples");
attr.Value = "novel";
//Add the attribute to the first book.
XmlElement currNode = (XmlElement) doc.DocumentElement.FirstChild;
currNode.SetAttributeNode(attr);
//An attribute cannot be added to two different elements.
//You must clone the attribute and add it to the second book.
XmlAttribute attr2;
attr2 = (XmlAttribute) attr.CloneNode(true);
currNode = (XmlElement) doc.DocumentElement.LastChild;
currNode.SetAttributeNode(attr2);
Console.WriteLine("Display the modified XML...\r\n");
XmlTextWriter writer = new XmlTextWriter(Console.Out);
writer.Formatting = Formatting.Indented;
doc.WriteContentTo(writer);
}
}
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
Dim doc as XmlDocument = new XmlDocument()
doc.Load("2elems.xml")
'Create an attribute.
Dim attr as XmlAttribute
attr = doc.CreateAttribute("bk","genre","urn:samples")
attr.Value = "novel"
'Add the attribute to the first book.
Dim currNode as XmlElement
currNode = CType(doc.DocumentElement.FirstChild, XmlElement)
currNode.SetAttributeNode(attr)
'An attribute cannot be added to two different elements.
'You must clone the attribute and add it to the second book.
Dim attr2 as XmlAttribute
attr2 = CType (attr.CloneNode(true), XmlAttribute)
currNode = CType(doc.DocumentElement.LastChild, XmlElement)
currNode.SetAttributeNode(attr2)
Console.WriteLine("Display the modified XML...")
Dim writer as XmlTextWriter = new XmlTextWriter(Console.Out)
writer.Formatting = Formatting.Indented
doc.WriteContentTo(writer)
end sub
end class
Das Beispiel verwendet die Datei, 2elems.xml
als Eingabe.
<!--sample XML fragment-->
<bookstore>
<book ISBN='10-861003-324'>
<title>The Handmaid's Tale</title>
<price>19.95</price>
</book>
<book ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
<price>24.95</price>
</book>
</bookstore>
Hinweise
Diese Methode dient als Kopierkonstruktor für Knoten. Der geklonte Knoten hat kein übergeordnetes Element (ParentNode gibt zurück null
).
Das Klonen eines nicht angegebenen Attributs gibt ein angegebenes Attribut zurück (Specified gibt zurück true
).