XmlNode.ReplaceChild(XmlNode, XmlNode) Method

Definition

Reemplaza el nodo secundario oldChild por el nodo newChild.Replaces the child node oldChild with newChild node.

public:
 virtual System::Xml::XmlNode ^ ReplaceChild(System::Xml::XmlNode ^ newChild, System::Xml::XmlNode ^ oldChild);
public virtual System.Xml.XmlNode ReplaceChild (System.Xml.XmlNode newChild, System.Xml.XmlNode oldChild);
abstract member ReplaceChild : System.Xml.XmlNode * System.Xml.XmlNode -> System.Xml.XmlNode
override this.ReplaceChild : System.Xml.XmlNode * System.Xml.XmlNode -> System.Xml.XmlNode
Public Overridable Function ReplaceChild (newChild As XmlNode, oldChild As XmlNode) As XmlNode

Parameters

newChild
XmlNode

Nuevo nodo que se va a agregar a la lista de nodos secundarios.The new node to put in the child list.

oldChild
XmlNode

Nodo que se va a reemplazar en la lista.The node being replaced in the list.

Returns

XmlNode

Nodo que se reemplaza.The node replaced.

Exceptions

Este nodo es de un tipo que no permite nodos secundarios del tipo del nodo newChild.This node is of a type that does not allow child nodes of the type of the newChild node.

newChild es un nodo antecesor de este nodo.The newChild is an ancestor of this node.

newChild se creó a partir de un documento diferente del que creó este nodo.The newChild was created from a different document than the one that created this node.

Este nodo es de sólo lectura.This node is read-only.

oldChild no es un nodo secundario de este nodo.The oldChild is not a child of this node.

Examples

En el siguiente ejemplo se reemplaza el elemento title en el documento XML.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 );
}

using System;
using System.IO;
using System.Xml;

public class Sample {

  public static void Main() {

    XmlDocument doc = new 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);
  }
}
Imports System.IO
Imports System.Xml

Public Class Sample
    
    Public Shared Sub Main()
        
        Dim doc As New XmlDocument()
        doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" & _
                    "<title>Pride And Prejudice</title>" & _
                    "</book>")
        
        Dim root As XmlNode = doc.DocumentElement
        
        'Create a new title element.
        Dim elem As XmlElement = 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)
    End Sub
End Class

Remarks

Si el newChild ya está en el árbol, primero se quita.If the newChild is already in the tree, it is first removed.

Si el newChild se creó a partir de otro documento, puede utilizar XmlDocument.ImportNode para importar el nodo en el documento actual.If the newChild was created from another document, you can use XmlDocument.ImportNode to import the node to the current document. A continuación, el nodo importado se puede pasar al método ReplaceChild.The imported node can then be passed to the ReplaceChild method.

Notes to Inheritors

Al reemplazar ReplaceChild en una clase derivada, para que los eventos se desencadenen correctamente, debe llamar al método ReplaceChild de la clase base.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.

Applies to

See also