XmlNode.ReplaceChild(XmlNode, XmlNode) Метод

Определение

Заменяет дочерний узел oldChild на узел 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

Параметры

newChild
XmlNode

Новый узел для помещения в список дочерних элементов.The new node to put in the child list.

oldChild
XmlNode

Замененный узел в списке.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.

Примеры

В следующем примере элемент title заменяется в 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

Комментарии

Если 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.

Применяется к

Дополнительно