XmlNode::ReplaceChild Method (XmlNode^, XmlNode^)


Replaces the child node oldChild with newChild node.

Namespace:   System.Xml
Assembly:  System.Xml (in System.Xml.dll)

virtual XmlNode^ ReplaceChild(
	XmlNode^ newChild,
	XmlNode^ oldChild


Type: System.Xml::XmlNode^

The new node to put in the child list.

Type: System.Xml::XmlNode^

The node being replaced in the list.

Return Value

Type: System.Xml::XmlNode^

The node replaced.

Exception Condition

This node is of a type that does not allow child nodes of the type of the newChild node.

The newChild is an ancestor of this node.


The newChild was created from a different document than the one that created this node.

This node is read-only.

The oldChild is not a child of this node.

If the newChild is already in the tree, it is first removed.

If the newChild was created from another document, you can use XmlDocument::ImportNode to import the node to the current document. The imported node can then be passed to the ReplaceChild method.

Notes to Inheritors:

When overriding ReplaceChild in a derived class, in order for events to be raised correctly, you must call the ReplaceChild method of the base class.

The following example replaces the title element in the XML document.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
   XmlDocument^ doc = gcnew XmlDocument;
   doc->LoadXml( "<book genre='novel' ISBN='1-861001-57-5'>"
   "<title>Pride And Prejudice</title>"
   "</book>" );
   XmlNode^ root = doc->DocumentElement;

   //Create a new title element.
   XmlElement^ elem = doc->CreateElement( "title" );
   elem->InnerText = "The Handmaid's Tale";

   //Replace the title element.
   root->ReplaceChild( elem, root->FirstChild );
   Console::WriteLine( "Display the modified XML..." );
   doc->Save( Console::Out );

Universal Windows Platform
Available since 10
.NET Framework
Available since 1.1
Return to top