Extensions.Attributes 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回來源集合中每個項目的屬性集合。
多載
Attributes(IEnumerable<XElement>) |
傳回來源集合中每個項目的屬性集合。 |
Attributes(IEnumerable<XElement>, XName) |
傳回來源集合中每個項目之屬性的已篩選集合。 集合中只會包含具有相符之 XName 的項目。 |
備註
Visual Basic使用者可以使用整合式屬性座標軸,從專案集合中擷取具有特定名稱的屬性。
這個方法會使用延後的執行。
Attributes(IEnumerable<XElement>)
傳回來源集合中每個項目的屬性集合。
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);
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> 的 XElement,其中包含來源集合。
傳回
IEnumerable<T> 的 XAttribute,其中包含來源集合中每個項目的屬性。
範例
下列範例會擷取專案集合,然後擷取集合中所有專案之所有屬性的集合。 請注意,產生的集合只包含 和 元素的屬性 Child1
,而不包含 元素的屬性 Root
。 Child2
請注意,這個方法會傳回命名空間屬性。
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
這個範例會產生下列輸出:
<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 位於命名空間中。 如需詳細資訊,請參閱 使用 XML 命名空間。 請注意,命名空間屬性包含在傳回的集合中。
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
這個範例會產生下列輸出:
<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 XML 中,命名空間會呈現為屬性。
雖然Visual Basic使用者可以使用整合式屬性座標軸,從專案集合中擷取具有指定名稱的屬性,但沒有整合式Visual Basic軸可擷取集合中所有元素的所有屬性。
這個方法會使用延後的執行。
另請參閱
適用於
Attributes(IEnumerable<XElement>, XName)
傳回來源集合中每個項目之屬性的已篩選集合。 集合中只會包含具有相符之 XName 的項目。
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);
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> 的 XElement,其中包含來源集合。
傳回
IEnumerable<T> 的 XAttribute,其中包含來源集合中每個項目之屬性的已篩選集合。 集合中只會包含具有相符之 XName 的項目。
範例
下列範例會擷取 元素的集合,在此案例中會包含 Child1
和 Child2
元素。 然後,它會擷取該子集合的所有屬性,其名稱為 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
這個範例會產生下列輸出:
Att1="content3"
Att1="content5"
備註
請注意,不同于某些其他 XML 程式設計介面,在 LINQ to XML 中,命名空間會呈現為屬性。
這個方法會使用延後的執行。