Export (0) Print
Expand All

XmlNode.InsertBefore Method

Inserts the specified node immediately before the specified reference node.

[Visual Basic]
Public Overridable Function InsertBefore( _
   ByVal newChild As XmlNode, _
   ByVal refChild As XmlNode _
) As XmlNode
[C#]
public virtual XmlNode InsertBefore(
 XmlNode newChild,
 XmlNode refChild
);
[C++]
public: virtual XmlNode* InsertBefore(
 XmlNode* newChild,
 XmlNode* refChild
);
[JScript]
public function InsertBefore(
   newChild : XmlNode,
 refChild : XmlNode
) : XmlNode;

Parameters

newChild
The XmlNode to insert.
refChild
The XmlNode that is the reference node. The newChild is placed before this node.

Return Value

The node being inserted.

Exceptions

Exception Type Condition
InvalidOperationException The current node is of a type that does not allow child nodes of the type of the newChild node.

The newChild is an ancestor of this node.

ArgumentException The newChild was created from a different document than the one that created this node.

The refChild is not a child of this node.

This node is read-only.

Remarks

If refChild is a null reference (Nothing in Visual Basic), insert newChild at the end of the list of child nodes. If newChild is an XmlDocumentFragment object, its child nodes are inserted, in the same order, before refChild. If the newChild is already in the tree, it is first removed.

If the node being inserted was created from another document, you can use XmlDocument.ImportNode to import the node to the current document. The imported node can then be inserted into the current document.

Notes to Inheritors:  When overriding InsertBefore in a derived class, in order for events to be fired correctly, you must call the InsertBefore method of the base class.

Example

[Visual Basic, C#, C++] The following example adds a new node to the XML document.

[Visual Basic] 
Option Strict
Option Explicit

Imports System
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 'Main 
End Class 'Sample

[C#] 
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);

  }
}

[C++] 
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;

int main()
{
    XmlDocument* doc = new XmlDocument();
    doc->LoadXml(S"<book genre='novel' ISBN='1-861001-57-5'>" 
                 S"<title>Pride And Prejudice</title>" 
                 S"</book>");

    XmlNode* root = doc->DocumentElement;

    //Create a new node.
    XmlElement* elem = doc->CreateElement(S"price");
    elem->InnerText=S"19.95";

    //Add the node to the document.
    root->InsertBefore(elem, root->FirstChild);

    Console::WriteLine(S"Display the modified XML...");
    doc->Save(Console::Out);

}

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework

See Also

XmlNode Class | XmlNode Members | System.Xml Namespace | XmlDocument.ImportNode

Show:
© 2014 Microsoft