XDocument.AddBeforeSelf Method (System.Xml.Linq)

Switch View :
ScriptFree
.NET Framework Class Library
XDocument.AddBeforeSelf Method

Adds the specified content immediately before this node.

This member is overloaded. For complete information about this member, including syntax, usage, and examples, click a name in the overload list.

Overload List

  Name Description
Public method AddBeforeSelf(Object) Adds the specified content immediately before this node. (Inherited from XNode.)
Public method AddBeforeSelf(Object[]) Adds the specified content immediately before this node. (Inherited from XNode.)
Top
Remarks

For details about the valid content that can be passed to this method, see Valid Content of XElement and XDocument Objects.

This method will raise the Changed and Changing events.

The XContainer stores its child notes as a singly-linked list of XNode objects. This means that the AddBeforeSelf method must traverse the list of direct child nodes under the parent container. Therefore, using this method might affect your performance.

Examples

The following example uses a LINQ query to create an IEnumerable<T> of XElement, which it then passes to this method. This adds the results of a query to the tree in the desired location.

C#
XElement srcTree = new XElement("Root",
    new XElement("Element1", 1),
    new XElement("Element2", 2),
    new XElement("Element3", 3),
    new XElement("Element4", 4),
    new XElement("Element5", 5)
);
XElement xmlTree = new XElement("Root",
    new XElement("Child1", 1),
    new XElement("Child2", 2),
    new XElement("Child3", 3),
    new XElement("Child4", 4),
    new XElement("Child5", 5)
);
XElement child1 = xmlTree.Element("Child1");
child1.AddBeforeSelf(
    from el in srcTree.Elements()
    where (int)el > 3
    select el
);
Console.WriteLine(xmlTree);
Visual Basic
Dim srcTree As XElement = _ 
        <Root>
            <Element1>1</Element1>
            <Element2>2</Element2>
            <Element3>3</Element3>
            <Element4>4</Element4>
            <Element5>5</Element5>
        </Root>

Dim xmlTree As XElement = _ 
        <Root>
            <Child1>1</Child1>
            <Child2>2</Child2>
            <Child3>3</Child3>
            <Child4>4</Child4>
            <Child5>5</Child5>
        </Root>

Dim child1 As XElement = xmlTree.<Child1>(0)
child1.AddBeforeSelf( _
From el In srcTree.Elements() _
Where CInt(el) > 3 _
Select el)

Console.WriteLine(xmlTree)

This example produces the following output:

xmlLang
<Root>
  <Element4>4</Element4>
  <Element5>5</Element5>
  <Child1>1</Child1>
  <Child2>2</Child2>
  <Child3>3</Child3>
  <Child4>4</Child4>
  <Child5>5</Child5>
</Root>
See Also

Reference

Other Resources