XmlNode.ReplaceChild(XmlNode, XmlNode) 方法


oldChild 节点替换子节点 newChildReplaces the child node oldChild with newChild node.

 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



要放入子列表的新节点。The new node to put in the child list.


列表中正在被替换的节点。The node being replaced in the list.


被替换的节点。The node replaced.


此节点的类型不允许 newChild 节点类型的子节点。This node is of a type that does not allow child nodes of the type of the newChild node.

newChild 是此节点的上级节点。The newChild is an ancestor of this node.

newChild 是从不同于创建此节点的文档创建的。The newChild was created from a different document than the one that created this node.

该节点是只读的。This node is read-only.

oldChild 不是此节点的子级。The oldChild is not a child of this node.


下面的示例将替换 XML 文档中的 title 元素。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>" +

    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...");
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>" & _
        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...")
    End Sub
End Class


如果 newChild 已在树中,则先将其删除。If the newChild is already in the tree, it is first removed.

如果 newChild 是从其他文档创建的,则可以使用 XmlDocument.ImportNode 将节点导入到当前文档。If the newChild was created from another document, you can use XmlDocument.ImportNode to import the node to the current document. 然后,可以将导入的节点传递到 ReplaceChild 方法。The imported node can then be passed to the ReplaceChild method.


当在派生类中重写 ReplaceChild 时,为了正确引发事件,必须调用基类的 ReplaceChild 方法。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.