Extensions.Attributes Método

Definição

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

Sobrecargas

Name Description
Attributes(IEnumerable<XElement>)

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

Attributes(IEnumerable<XElement>, XName)

Devolve uma coleção filtrada dos atributos de cada elemento na coleção de origem. Apenas os elementos que têm correspondência XName são incluídos na coleção.

Observações

Os utilizadores do Visual Basic podem usar o eixo integrado de atributos para recuperar atributos com um nome específico a partir de uma coleção de elementos.

Este método utiliza execução diferida.

Attributes(IEnumerable<XElement>)

Devolve 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 XElement contém a coleção de fontes.

Devoluções

Um IEnumerable<T> de XAttribute que contém os atributos de cada elemento na coleção de código-fonte.

Exemplos

O exemplo seguinte recupera uma coleção de elementos e depois recupera uma coleção de todos os atributos de todos os elementos da coleção. Note-se que a coleção resultante inclui apenas os atributos dos Child1 elementos e Child2 e não os atributos do Root elemento.

Note que o atributo do espaço de nomes é devolvido por este 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 seguinte é o mesmo, mas neste caso o XML está num namespace. Para mais informações, consulte Trabalhar com Namespaces XML. Note que o atributo namespace está incluído na coleção devolvida.

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"

Observações

Note-se que, ao contrário de algumas outras interfaces de programação XML, no LINQ para XML, os namespaces são apresentados como atributos.

Embora os utilizadores do Visual Basic possam usar o eixo de atributos integrado para recuperar atributos com um nome especificado de uma coleção de elementos, não existe um eixo Visual Basic integrado para recuperar todos os atributos de todos os elementos de uma coleção.

Este método utiliza execução diferida.

Ver também

Aplica-se a

Attributes(IEnumerable<XElement>, XName)

Devolve uma coleção filtrada dos atributos de cada elemento na coleção de origem. Apenas os elementos que têm correspondência XName 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 XElement contém a coleção de fontes.

name
XName

O XName para combinar.

Devoluções

Um IEnumerable<T> de XAttribute que contém uma coleção filtrada dos atributos de cada elemento na coleção fonte. Apenas os elementos que têm correspondência XName são incluídos na coleção.

Exemplos

O exemplo seguinte recupera uma coleção de elementos, que neste caso inclui os Child1 elementos e Child2 . Depois, recupera todos os atributos dessa coleção filha com o nome .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"

Observações

Note-se que, ao contrário de algumas outras interfaces de programação XML, no LINQ para XML, os namespaces são apresentados como atributos.

Este método utiliza execução diferida.

Ver também

Aplica-se a