Bagikan melalui


Cara menemukan elemen dengan atribut tertentu (LINQ ke XML)

Artikel ini memberikan contoh cara menemukan elemen yang atributnya memiliki nilai tertentu.

Contoh: Menemukan elemen yang atributnya memiliki nilai tertentu

Contoh berikut menunjukkan cara menemukan elemen Address yang memiliki atribut Type dengan nilai "Penagihan". Contoh ini menggunakan dokumen XML File XML sampel: Pesanan pembelian umum.

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

Contoh ini menghasilkan output berikut:

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

Contoh: Menemukan elemen di XML yang ada di kumpulan nama XML

Contoh berikut menunjukkan kueri yang sama, tetapi untuk XML yang ada di kumpulan nama XML. Contoh menggunakan dokumen XML File XML sampel: pesanan pembelian yang umum dalam kumpulan nama XML.

Untuk informasi selengkapnya tentang kumpulan nama XML, lihat Ringkasan kumpulan nama XML.

XElement root = XElement.Load("PurchaseOrderInNamespace.xml");
XNamespace aw = "http://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='http://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

Contoh ini menghasilkan output berikut::

<aw:Address aw:Type="Billing" xmlns:aw="http://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>

Lihat juga