Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si chiama uno dei metodi che restituisce l'oggetto IEnumerable<T> di XElement, è possibile filtrare in base al nome dell'elemento.
Esempio: Recuperare discendenti filtrati in base a un nome specificato
In questo esempio viene recuperata una raccolta di discendenti filtrata in maniera tale da includere solo i discendenti con il nome specificato.
L'esempio usa il documento XML seguente: File XML di esempio: Ordine di acquisto tipico.
XElement po = XElement.Load("PurchaseOrder.xml");
IEnumerable<XElement> items =
from el in po.Descendants("ProductName")
select el;
foreach(XElement prdName in items)
Console.WriteLine(prdName.Name + ":" + (string) prdName);
Dim po As XElement = XElement.Load("PurchaseOrder.xml")
Dim items As IEnumerable(Of XElement) = _
From el In po...<ProductName> _
Select el
For Each prdName As XElement In items
Console.WriteLine(prdName.Name.ToString & ":" & prdName.Value)
Next
Nell'esempio viene prodotto l'output seguente:
ProductName:Lawnmower
ProductName:Baby Monitor
Gli altri metodi che restituiscono l'oggetto IEnumerable<T> delle raccolte XElement sono caratterizzati dallo stesso schema. Le relative firme sono simili a Elements e Descendants. Di seguito è riportato l'elenco completo dei metodi con firme simili:
- Ancestors
- Descendants
- Elements
- ElementsAfterSelf
- ElementsBeforeSelf
- AncestorsAndSelf
- DescendantsAndSelf
Esempio: Recuperare da un documento XML incluso in uno spazio dei nomi
L'esempio seguente mostra la stessa query per un documento XML che non è incluso in uno spazio dei nomi. Per ottenere ulteriori informazioni, vedere Panoramica degli spazi dei nomi.
Viene usato il documento XML seguente: File XML di esempio: Tipico ordine di acquisto in uno spazio dei nomi.
XNamespace aw = "http://www.adventure-works.com";
XElement po = XElement.Load("PurchaseOrderInNamespace.xml");
IEnumerable<XElement> items =
from el in po.Descendants(aw + "ProductName")
select el;
foreach (XElement prdName in items)
Console.WriteLine(prdName.Name + ":" + (string)prdName);
Imports <xmlns:aw="http://www.adventure-works.com">
Module Module1
Sub Main()
Dim po As XElement = XElement.Load("PurchaseOrderInNamespace.xml")
Dim items As IEnumerable(Of XElement) = _
From el In po...<aw:ProductName> _
Select el
For Each prdName As XElement In items
Console.WriteLine(prdName.Name.ToString & ":" & prdName.Value)
Next
End Sub
End Module
Nell'esempio viene prodotto l'output seguente:
{http://www.adventure-works.com}ProductName:Lawnmower
{http://www.adventure-works.com}ProductName:Baby Monitor