Extensions.Attributes 方法

定义

返回源集合中每个元素的属性的集合。Returns a collection of the attributes of every element in the source collection.

重载

Attributes(IEnumerable<XElement>)

返回源集合中每个元素的属性的集合。Returns a collection of the attributes of every element in the source collection.

Attributes(IEnumerable<XElement>, XName)

返回源集合中经过筛选的每个元素的属性的集合。Returns a filtered collection of the attributes of every element in the source collection. 集合中仅包括具有匹配 XName 的元素。Only elements that have a matching XName are included in the collection.

注解

Visual Basic 用户可以使用集成属性轴从元素集合中检索具有特定名称的属性。Visual Basic users can use the integrated attribute axis to retrieve attributes with a particular name from a collection of elements.

此方法使用延迟执行。This method uses deferred execution.

Attributes(IEnumerable<XElement>)

返回源集合中每个元素的属性的集合。Returns a collection of the attributes of every element in the source collection.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XAttribute ^> ^ Attributes(System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ source);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XAttribute> Attributes (this System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> source);
static member Attributes : seq<System.Xml.Linq.XElement> -> seq<System.Xml.Linq.XAttribute>
<Extension()>
Public Function Attributes (source As IEnumerable(Of XElement)) As IEnumerable(Of XAttribute)

参数

source
IEnumerable<XElement>

一个包含源集合的 IEnumerable<T>XElementAn IEnumerable<T> of XElement that contains the source collection.

返回

IEnumerable<T>XAttribute,其中包含源集合中每个元素的属性。An IEnumerable<T> of XAttribute that contains the attributes of every element in the source collection.

示例

下面的示例检索元素的集合,然后检索集合中所有元素的所有属性的集合。The following example retrieves a collection of elements, and then retrieves a collection of all attributes of all elements in the collection. 请注意,生成的集合仅包含Child1Child2元素的属性,而Root不包含元素的特性。Note that the resulting collection includes only the attributes of the Child1 and Child2 elements, and not the attributes of the Root element.

请注意,此方法返回命名空间属性。Note that the namespace attribute is returned by this method.

XElement xmlTree = new XElement("Root",  
    new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),  
    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")  
    )  
);  
Console.WriteLine(xmlTree);  
Console.WriteLine("-----");  
  
IEnumerable<XAttribute> attList =  
    from att in xmlTree.DescendantsAndSelf().Attributes()  
    select att;  
  
foreach (XAttribute att in attList)  
    Console.WriteLine(att);  
Dim xmlTree As XElement = _  
    <Root xmlns:aw="http://www.adventure-works.com" Att1="content1" Att2="content2">  
        <Child1 Att1="content3" Att2="content4"/>  
        <Child2 Att1="content5" Att2="content6"/>  
    </Root>  
  
Dim attList = _  
    From att In xmlTree.DescendantsAndSelf.Attributes _  
    Select att  
  
Console.WriteLine(xmlTree)  
Console.WriteLine("-----")  
  
For Each att As XAttribute In attList  
    Console.WriteLine(att)  
Next  

该示例产生下面的输出:This example produces the following output:

<Root xmlns:aw="http://www.adventure-works.com" Att1="content1" Att2="content2">  
  <Child1 Att1="content3" Att2="content4" />  
  <Child2 Att1="content5" Att2="content6" />  
</Root>  
-----  
xmlns:aw="http://www.adventure-works.com"  
Att1="content1"  
Att2="content2"  
Att1="content3"  
Att2="content4"  
Att1="content5"  
Att2="content6"  

下面是同一个示例,但在这种情况下,XML 位于命名空间中。The following is the same example, but in this case the XML is in a namespace. 有关详细信息,请参阅使用XML 命名空间For more information, see Working with XML Namespaces. 请注意,namespace 特性包含在返回的集合中。Note that the namespace attribute is included in the returned collection.

XNamespace aw = "http://www.adventure-works.com";  
XElement xmlTree = new XElement(aw + "Root",  
    new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),  
    new XAttribute(aw + "Att1", "content1"),  
    new XAttribute(aw + "Att2", "content2"),  
    new XElement(aw + "Child1",  
        new XAttribute(aw + "Att1", "content3"),  
        new XAttribute(aw + "Att2", "content4")  
    ),  
    new XElement(aw + "Child2",  
        new XAttribute(aw + "Att1", "content5"),  
        new XAttribute(aw + "Att2", "content6")  
    )  
);  
Console.WriteLine(xmlTree);  
Console.WriteLine("-----");  
  
IEnumerable<XAttribute> attList =  
    from att in xmlTree.DescendantsAndSelf().Attributes()  
    select att;  
  
foreach (XAttribute att in attList)  
    Console.WriteLine(att);  
Imports <xmlns:aw="http://www.adventure-works.com">  
  
Module Module1  
    Sub Main()  
        Dim xmlTree As XElement = _  
            <aw:Root xmlns:aw="http://www.adventure-works.com" aw:Att1="content1" aw:Att2="content2">  
                <aw:Child1 aw:Att1="content3" aw:Att2="content4"/>  
                <aw:Child2 aw:Att1="content5" aw:Att2="content6"/>  
            </aw:Root>  
  
        Dim attList = _  
            From att In xmlTree.DescendantsAndSelf.Attributes _  
            Select att  
  
        Console.WriteLine(xmlTree)  
        Console.WriteLine("-----")  
  
        For Each att As XAttribute In attList  
            Console.WriteLine(att)  
        Next  
    End Sub  
End Module  

该示例产生下面的输出:This example produces the following output:

<aw:Root xmlns:aw="http://www.adventure-works.com" aw:Att1="content1" aw:Att2="content2">  
  <aw:Child1 aw:Att1="content3" aw:Att2="content4" />  
  <aw:Child2 aw:Att1="content5" aw:Att2="content6" />  
</aw:Root>  
-----  
xmlns:aw="http://www.adventure-works.com"  
aw:Att1="content1"  
aw:Att2="content2"  
aw:Att1="content3"  
aw:Att2="content4"  
aw:Att1="content5"  
aw:Att2="content6"  

注解

请注意,与其他一些 XML 编程接口不同LINQ to XMLLINQ to XML,在中,命名空间作为属性出现。Note that unlike some other XML programming interfaces, in LINQ to XMLLINQ to XML, namespaces are surfaced as attributes.

尽管 Visual Basic 用户可以使用集成属性轴从元素集合中检索具有指定名称的属性,但没有集成的 Visual Basic 轴来检索集合中所有元素的所有属性。Although Visual Basic users can use the integrated attribute axis to retrieve attributes with a specified name from a collection of elements, there is no integrated Visual Basic axis to retrieve all attributes of all elements in a collection.

此方法使用延迟执行。This method uses deferred execution.

另请参阅

Attributes(IEnumerable<XElement>, XName)

返回源集合中经过筛选的每个元素的属性的集合。Returns a filtered collection of the attributes of every element in the source collection. 集合中仅包括具有匹配 XName 的元素。Only elements that have a matching XName are included in the collection.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XAttribute ^> ^ Attributes(System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ source, System::Xml::Linq::XName ^ name);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XAttribute> Attributes (this System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> source, System.Xml.Linq.XName name);
static member Attributes : seq<System.Xml.Linq.XElement> * System.Xml.Linq.XName -> seq<System.Xml.Linq.XAttribute>
<Extension()>
Public Function Attributes (source As IEnumerable(Of XElement), name As XName) As IEnumerable(Of XAttribute)

参数

source
IEnumerable<XElement>

一个包含源集合的 IEnumerable<T>XElementAn IEnumerable<T> of XElement that contains the source collection.

name
XName

要匹配的 XNameThe XName to match.

返回

IEnumerable<T>XAttribute,其中包含源集合中经过筛选的每个元素的属性集合。An IEnumerable<T> of XAttribute that contains a filtered collection of the attributes of every element in the source collection. 集合中仅包括具有匹配 XName 的元素。Only elements that have a matching XName are included in the collection.

示例

下面的示例检索元素的集合,在此示例中,包含Child1Child2元素。The following example retrieves a collection of elements, which in this case includes the Child1 and Child2 elements. 然后,它将检索名称为的Att1子集合的所有属性。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);  
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  
    Console.WriteLine(att)  
Next  
  

该示例产生下面的输出:This example produces the following output:

Att1="content3"  
Att1="content5"  

注解

请注意,与其他一些 XML 编程接口不同LINQ to XMLLINQ to XML,在中,命名空间作为属性出现。Note that unlike some other XML programming interfaces, in LINQ to XMLLINQ to XML, namespaces are surfaced as attributes.

此方法使用延迟执行。This method uses deferred execution.

另请参阅

适用于