次の方法で共有


方法 : 特定の属性を持つ要素を検索する

このトピックでは、特定の値を含む属性を持つ要素を検索する方法について説明します。

使用例

この例では、"Billing" の値を含む Type 属性を持つ Address 要素を検索する方法を示します。

この例では、「サンプル XML ファイル : 一般的な購買発注書 (LINQ to XML)」の XML ドキュメントを使用しています。

XElement root = XElement.Load("PurchaseOrder.xml");
IEnumerable<XElement> address =
    from el in root.Elements("Address")
    where (string)el.Attribute("Type") == "Billing"
    select el;
foreach (XElement el in address)
    Console.WriteLine(el);
Dim root As XElement = XElement.Load("PurchaseOrder.xml")
Dim address As IEnumerable(Of XElement) = _
    From el In root.<Address> _
    Where el.@Type = "Billing" _
    Select el
For Each el As XElement In address
    Console.WriteLine(el)
Next

このコードを実行すると、次の出力が生成されます。

<Address Type="Billing">
  <Name>Tai Yee</Name>
  <Street>8 Oak Avenue</Street>
  <City>Old Town</City>
  <State>PA</State>
  <Zip>95819</Zip>
  <Country>USA</Country>
</Address>

Visual Basic の例では、XML 子軸プロパティXML 属性軸プロパティ、および XML 値プロパティが使用されることに注意してください。

次の例は名前空間に含まれている XML 用のクエリです。これらのクエリは上の例と同じ機能を表しています。 詳細については、「XML 名前空間の使用」を参照してください。

この例では、「サンプル XML ファイル : 名前空間内の一般的な購買発注書」の XML ドキュメントを使用しています。

XElement root = XElement.Load("PurchaseOrderInNamespace.xml");
XNamespace aw = "https://www.adventure-works.com";
IEnumerable<XElement> address =
    from el in root.Elements(aw + "Address")
    where (string)el.Attribute(aw + "Type") == "Billing"
    select el;
foreach (XElement el in address)
    Console.WriteLine(el);
Imports <xmlns:aw='https://www.adventure-works.com'>

Module Module1
    Sub Main()
        Dim root As XElement = XElement.Load("PurchaseOrderInNamespace.xml")
        Dim address As IEnumerable(Of XElement) = _
            From el In root.<aw:Address> _
            Where el.@aw:Type = "Billing" _
            Select el
        For Each el As XElement In address
            Console.WriteLine(el)
        Next
    End Sub
End Module

このコードによって、次の出力が生成されます。

<aw:Address aw:Type="Billing" xmlns:aw="https://www.adventure-works.com">
  <aw:Name>Tai Yee</aw:Name>
  <aw:Street>8 Oak Avenue</aw:Street>
  <aw:City>Old Town</aw:City>
  <aw:State>PA</aw:State>
  <aw:Zip>95819</aw:Zip>
  <aw:Country>USA</aw:Country>
</aw:Address>

参照

参照

Attribute

Elements

概念

基本的なクエリ (LINQ to XML)

標準クエリ演算子の概要

射影操作