Поделиться через


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 метод базового класса.

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

См. также раздел