Extensions.Attributes Method (IEnumerable<XElement>, XName)
Microsoft Silverlight will reach end of support after October 2021. Learn more.
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)
Syntax
'Declaration
<ExtensionAttribute> _
Public Shared Function Attributes ( _
source As IEnumerable(Of XElement), _
name As XName _
) As IEnumerable(Of XAttribute)
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.
Exceptions
Exception | Condition |
---|---|
ArgumentNullException | source is nulla null reference (Nothing in Visual Basic). |
Remarks
Note that unlike some other XML programming interfaces, in LINQ to XML, namespaces are surfaced as attributes.
This method uses deferred execution.
Examples
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.
Dim output As New StringBuilder
Dim xmlTree As XElement = _
<Root Att1="content1" Att2="content2">
<Child1 Att1="content3" Att2="content4">
</Child1>
<Child2 Att1="content5" Att2="content6">
</Child2>
</Root>
Dim attList = From att In xmlTree.Elements.Attributes("Att1") _
Select att
For Each att As XAttribute In attList
output.Append(att)
output.Append(Environment.NewLine)
Next
OutputTextBlock.Text = output.ToString()
StringBuilder output = new StringBuilder();
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)
output.Append(att + Environment.NewLine);
OutputTextBlock.Text = output.ToString();
Version Information
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
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also