Extensions.Attributes Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.
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.