XmlNode.InsertBefore(XmlNode, XmlNode) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вставляет заданный узел сразу перед указанным узлом ссылки.
public:
virtual System::Xml::XmlNode ^ InsertBefore(System::Xml::XmlNode ^ newChild, System::Xml::XmlNode ^ refChild);
public virtual System.Xml.XmlNode InsertBefore (System.Xml.XmlNode newChild, System.Xml.XmlNode refChild);
public virtual System.Xml.XmlNode? InsertBefore (System.Xml.XmlNode newChild, System.Xml.XmlNode? refChild);
abstract member InsertBefore : System.Xml.XmlNode * System.Xml.XmlNode -> System.Xml.XmlNode
override this.InsertBefore : System.Xml.XmlNode * System.Xml.XmlNode -> System.Xml.XmlNode
Public Overridable Function InsertBefore (newChild As XmlNode, refChild As XmlNode) As XmlNode
Параметры
- newChild
- XmlNode
Вставляемый узел.
- refChild
- XmlNode
Узел ссылки.
newChild
размещен перед данным узлом.
Возвращаемое значение
Вставляемый узел.
Исключения
Текущий узел относится к типу, который не допускает дочерних узлов типа newChild
.
Узел newChild
является предком данного узла.
Узел newChild
был создан из другого документа, отличного от документа, из которого был создан этот узел.
Узел refChild
не является дочерним для этого узла.
Этот узел доступен только для чтения.
Примеры
В следующем примере новый узел добавляется в 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 node.
XmlElement^ elem = doc->CreateElement( "price" );
elem->InnerText = "19.95";
//Add the node to the document.
root->InsertBefore( 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 node.
XmlElement elem = doc.CreateElement("price");
elem.InnerText="19.95";
//Add the node to the document.
root.InsertBefore(elem, root.FirstChild);
Console.WriteLine("Display the modified XML...");
doc.Save(Console.Out);
}
}
Option Strict
Option Explicit
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 node.
Dim elem As XmlElement = doc.CreateElement("price")
elem.InnerText = "19.95"
'Add the node to the document.
root.InsertBefore(elem, root.FirstChild)
Console.WriteLine("Display the modified XML...")
doc.Save(Console.Out)
End Sub
End Class
Комментарии
Если refChild
имеет значение null
, вставьте newChild
в конец списка дочерних узлов. Все содержимое newChild
вставляется в том же порядке перед refChild
. Если объект newChild
уже находится в дереве, он удаляется из исходного положения и добавляется в целевую позицию. Дополнительные сведения о вставке узлов см. в разделе Вставка узлов в XML-документ.
Если вставляемый узел был создан из другого документа, можно использовать для XmlDocument.ImportNode импорта узла в текущий документ. Затем импортированный узел можно вставить в текущий документ.
Примечания для тех, кто наследует этот метод
При переопределении InsertBefore
в производном классе для правильного вызова событий необходимо вызвать InsertBefore
метод базового класса.