Extensions.Attributes メソッド

定義

ソース コレクション内のすべての要素の属性のコレクションを返します。

オーバーロード

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

ソース コレクション内のすべての要素の属性が格納された、IEnumerable<T>XAttribute

次の例では、要素のコレクションを取得し、コレクション内のすべての要素のすべての属性のコレクションを取得します。 結果のコレクションには、要素のChild1``Child2属性のみが含まれており、要素のRoot属性は含まれていないことに注意してください。

名前空間属性は、このメソッドによって返されることに注意してください。

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

name
XName

照合する XName

戻り値

IEnumerable<XAttribute>

ソース コレクション内のすべての要素の、フィルター処理された属性のコレクションが格納された、IEnumerable<T>XAttribute。 一致する XName を持つ要素のみがコレクションに含められます。

次の例では、要素のコレクションを取得します。この場合、要素とChild2要素がChild1含まれます。 その後、その子コレクションのすべての属性を名前 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では名前空間が属性として表示されることに注意してください。

このメソッドは遅延実行を使用します。

こちらもご覧ください

適用対象