XmlNode.ReplaceChild(XmlNode, XmlNode) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Заменяет дочерний узел oldChild
на узел newChild
.
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
Новый узел для помещения в список дочерних элементов.
- oldChild
- XmlNode
Замененный узел в списке.
Возвращаемое значение
Замененный узел.
Исключения
Данный узел относится к типу, который не допускает дочерних узлов типа newChild
.
Узел newChild
является предком данного узла.
Узел newChild
был создан из другого документа, отличного от документа, из которого был создан этот узел.
Этот узел доступен только для чтения.
Узел oldChild
не является дочерним для этого узла.
Примеры
В следующем примере элемент заголовка в XML-документе заменяется.
#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
уже находится, он сначала удаляется.
newChild
Если файл был создан из другого документа, можно импортировать XmlDocument.ImportNode узел в текущий документ. Затем импортированный узел можно передать методу ReplaceChild
.
Примечания для тех, кто наследует этот метод
При переопределении ReplaceChild
в производном классе для правильного создания событий необходимо вызвать ReplaceChild
метод базового класса.