Extensions.Attributes Método

Definição

Retorna uma coleção dos atributos de cada elemento na coleção de origem.

Sobrecargas

Nome Description
Attributes(IEnumerable<XElement>)

Retorna uma coleção dos atributos de cada elemento na coleção de origem.

Attributes(IEnumerable<XElement>, XName)

Retorna uma coleção filtrada dos atributos de cada elemento na coleção de origem. Somente os elementos que têm uma XName correspondente são incluídos na coleção.

Comentários

Visual Basic usuários podem usar o eixo de atributo integrado para recuperar atributos com um nome específico de uma coleção de elementos.

Esse método usa a execução adiada.

Attributes(IEnumerable<XElement>)

Retorna uma coleção dos atributos de cada elemento na coleção de origem.

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)

Parâmetros

source
IEnumerable<XElement>

Um IEnumerable<T> deles contém a coleção de XElement origem.

Retornos

Um IEnumerable<T> deles XAttribute contém os atributos de cada elemento na coleção de origem.

Exemplos

O exemplo a seguir recupera uma coleção de elementos e recupera uma coleção de todos os atributos de todos os elementos na coleção. Observe que a coleção resultante inclui apenas os atributos dos Child1 elementos e Child2 e não os atributos do Root elemento.

Observe que o atributo namespace é retornado por esse método.

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

Este exemplo produz a seguinte saída:

<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"

O exemplo a seguir é o mesmo, mas nesse caso o XML está em um namespace. Para obter mais informações, consulte Trabalhar com namespaces XML. Observe que o atributo namespace está incluído na coleção retornada.

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

Este exemplo produz a seguinte saída:

<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"

Comentários

Observe que, ao contrário de algumas outras interfaces de programação XML, em LINQ to XML, os namespaces são exibidos como atributos.

Embora Visual Basic usuários possam usar o eixo de atributo integrado para recuperar atributos com um nome especificado de uma coleção de elementos, não há nenhum eixo Visual Basic integrado para recuperar todos os atributos de todos os elementos em uma coleção.

Esse método usa a execução adiada.

Confira também

Aplica-se a

Attributes(IEnumerable<XElement>, XName)

Retorna uma coleção filtrada dos atributos de cada elemento na coleção de origem. Somente os elementos que têm uma XName correspondente são incluídos na coleção.

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)

Parâmetros

source
IEnumerable<XElement>

Um IEnumerable<T> deles contém a coleção de XElement origem.

name
XName

A XName correspondência a ser correspondida.

Retornos

Um IEnumerable<T> deles contém uma coleção filtrada dos atributos de cada elemento na coleção de XAttribute origem. Somente os elementos que têm uma XName correspondente são incluídos na coleção.

Exemplos

O exemplo a seguir recupera uma coleção de elementos, que, nesse caso, inclui elementos e Child2 elementosChild1. Em seguida, recupera todos os atributos dessa coleção filho com um nome de 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

Este exemplo produz a seguinte saída:

Att1="content3"
Att1="content5"

Comentários

Observe que, ao contrário de algumas outras interfaces de programação XML, em LINQ to XML, os namespaces são exibidos como atributos.

Esse método usa a execução adiada.

Confira também

Aplica-se a