Extensions.Attributes Method (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.

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

public static IEnumerable<XAttribute> Attributes(
	this IEnumerable<XElement> source,
	XName name
)

Parameters

source
Type: System.Collections.Generic.IEnumerable<XElement>

An IEnumerable<T> of XElement that contains the source collection.

name
Type: System.Xml.Linq.XName

The XName to match.

Return Value

Type: System.Collections.Generic.IEnumerable<XAttribute>
An IEnumerable<T> of XAttribute that contains 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.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type IEnumerable<XElement>. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

Note that unlike some other XML programming interfaces, in LINQ to XML, namespaces are surfaced as attributes.

This method uses deferred execution.

The following example retrieves a collection of elements, which in this case includes the Child1 and Child2 elements. It then retrieves all attributes of that child collection with a name of Att1.

XElement xmlTree = new XElement("Root",
    new XAttribute("Att1", "content1"),
    new XAttribute("Att2", "content2"),
    new XElement("Child1",
        new XAttribute("Att1", "content3"),
        new XAttribute("Att2", "content4")
    ),
    new XElement("Child2",
        new XAttribute("Att1", "content5"),
        new XAttribute("Att2", "content6")
    )
);

IEnumerable<XAttribute> attList = from att in xmlTree.Elements().Attributes("Att1")
                                  select att;

foreach (XAttribute att in attList)
    Console.WriteLine(att);

This example produces the following output:

Att1="content3"
Att1="content5"

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft