Come trovare un elemento con un attributo specifico (LINQ to XML)
Questo articolo fornisce esempi di come trovare un elemento il cui attributo ha un valore specifico.
Esempio: Trovare un elemento il cui attributo ha un valore specifico
Nell'esempio seguente viene illustrato come trovare l'elemento Address
con un attributo Type
con il valore "Billing". Nell'esempio viene utilizzato il documento XML file XML di esempio: tipico ordine di acquisto.
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
In questo esempio viene generato l'output seguente:
<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>
Esempio: trovare un elemento in XML che si trova in uno spazio dei nomi
Nell'esempio seguente viene illustrata la stessa query, ma per XML in un namespace. Usa il documento XML esempio di file XML: tipico ordine di acquisto all'interno del namespace.
Per altre informazioni sugli spazi dei nomi, vedere panoramica degli spazi dei nomi .
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
In questo esempio viene generato l'output seguente:
<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>
Vedere anche
- Attribute
- Elements
- Panoramica degli operatori di query standard (C#)
- operazioni di proiezione (C#)
- Query di Base (LINQ to XML) (Visual Basic)
- Panoramica degli operatori di query standard (Visual Basic)
- Operazioni di proiezione (Visual Basic)