Export (0) Print
Expand All

Extensions Class

Contains the LINQ to XML extension methods.

System.Object
  System.Xml.Linq.Extensions

Namespace:  System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

public static class Extensions

The Extensions type exposes the following members.

  NameDescription
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360Ancestors<T>(IEnumerable<T>)Returns a collection of elements that contains the ancestors of every node in the source collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360Ancestors<T>(IEnumerable<T>, XName)Returns a filtered collection of elements that contains the ancestors of every node in the source collection. Only elements that have a matching XName are included in the collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360AncestorsAndSelf(IEnumerable<XElement>)Returns a collection of elements that contains every element in the source collection, and the ancestors of every element in the source collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360AncestorsAndSelf(IEnumerable<XElement>, XName)Returns a filtered collection of elements that contains every element in the source collection, and the ancestors of every element in the source collection. Only elements that have a matching XName are included in the collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360Attributes(IEnumerable<XElement>)Returns a collection of the attributes of every element in the source collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360Attributes(IEnumerable<XElement>, XName)Returns a filtered collection of the attributes of every element in the source collection. Only elements that have a matching XName are included in the collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360DescendantNodes<T>Returns a collection of the descendant nodes of every document and element in the source collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360DescendantNodesAndSelfReturns a collection of nodes that contains every element in the source collection, and the descendant nodes of every element in the source collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360Descendants<T>(IEnumerable<T>)Returns a collection of elements that contains the descendant elements of every element and document in the source collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360Descendants<T>(IEnumerable<T>, XName)Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Only elements that have a matching XName are included in the collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360DescendantsAndSelf(IEnumerable<XElement>)Returns a collection of elements that contains every element in the source collection, and the descendent elements of every element in the source collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360DescendantsAndSelf(IEnumerable<XElement>, XName)Returns a filtered collection of elements that contains every element in the source collection, and the descendents of every element in the source collection. Only elements that have a matching XName are included in the collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360Elements<T>(IEnumerable<T>)Returns a collection of the child elements of every element and document in the source collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360Elements<T>(IEnumerable<T>, XName)Returns a filtered collection of the child elements of every element and document in the source collection. Only elements that have a matching XName are included in the collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360InDocumentOrder<T>Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360Nodes<T>Returns a collection of the child nodes of every document and element in the source collection.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360Remove(IEnumerable<XAttribute>)Removes every attribute in the source collection from its parent element.
Public methodStatic memberSupported by Silverlight for Windows PhoneSupported by Xbox 360Remove<T>(IEnumerable<T>)Removes every node in the source collection from its parent node.
Top

Most of the LINQ to XML extension methods are axis methods that are used in LINQ queries. The methods in this class operate on collections and return collections. These methods enumerate the source collection, call the appropriate axis method on each item in the collection, and concatenate the results.

The two Remove extension methods are not axis methods, however. These methods remove attributes or nodes from the XML tree.

Note that there is another category of axis methods, implemented in the XElement, XDocument, and XNode classes. These other axis methods operate on a single object, and return a collection of XElement, XAttribute, or XNode objects.

All of the axis extension methods use deferred execution.


StringBuilder output = new StringBuilder();
XElement xmlTree = new XElement("Root",
    new XElement("Child1",
        new XElement("GrandChild1",
            new XElement("GreatGrandChild1", "content")
        )
    ),
    new XElement("Child2",
        new XElement("GrandChild2",
            new XElement("GreatGrandChild2", "content")
        )
    )
);
IEnumerable<XElement> greatGrandChildren =
    from el in xmlTree.Descendants()
    where el.Name.LocalName.StartsWith("Great")
    select el;

output.Append("Great Grand Children Elements" + Environment.NewLine);
output.Append("----" + Environment.NewLine);
foreach (XElement de in greatGrandChildren)
    output.Append(de.Name + Environment.NewLine);

IEnumerable<XElement> allAncestors =
    from el in greatGrandChildren.Ancestors().Distinct()
    select el;

output.Append("" + Environment.NewLine);
output.Append("Ancestors" + Environment.NewLine);
output.Append("----" + Environment.NewLine);
foreach (XElement de in allAncestors)
    output.Append(de.Name + Environment.NewLine);

OutputTextBlock.Text = output.ToString();


Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Community Additions

ADD
Show:
© 2014 Microsoft