XmlNode.ReplaceChild(XmlNode, XmlNode) メソッド


子ノード oldChildnewChild ノードに置き換えます。Replaces 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.