Condividi tramite


Cenni preliminari sugli assi di LINQ to XML

Dopo aver creato una struttura ad albero XML o aver caricato un documento XML in una struttura ad albero XML, è possibile eseguire query su di essa per cercare elementi e attributi e recuperarne i valori.Per recuperare le raccolte vengono utilizzati i metodi dell'asse, denominati anche assi.Alcuni degli assi sono metodi delle classi XElement e XDocument che restituiscono raccolte IEnumerable<T>.Alcuni degli assi sono metodi di estensione della classe Extensions.Gli assi implementati come metodi di estensione operano sulle raccolte e restituiscono raccolte.

Come descritto in Cenni preliminari sulla classe XElement, un oggetto XElement rappresenta il nodo di un unico elemento.Il contenuto di un elemento può essere semplice o complesso (talvolta definito contenuto strutturato).Un elemento semplice può essere vuoto o può contenere un valore.Se il nodo include contenuto strutturato, è possibile utilizzare i diversi metodi dell'asse per recuperare enumerazioni di elementi discendente.I metodi dell'asse utilizzati più di frequente sono Elements e Descendants.

Oltre ai metodi dell'asse, che restituiscono raccolte, sono disponibili altri due metodi utilizzati frequentemente nelle query LINQ to XML.Il metodo Element restituisce un singolo oggetto XElement.Il metodo Attribute restituisce un singolo oggetto XAttribute.

Per molti scopi, le query LINQ costituiscono il modo più potente per esaminare una struttura ad albero, estrarre dati da essa e trasformarla.Le query LINQ operano su oggetti che implementano IEnumerable<T>, mentre gli assi LINQ to XML restituiscono IEnumerable<T> di raccolte Xelement e IEnumerable<T> di raccolte XAttribute.Tali raccolte sono necessarie per l'esecuzione delle query.

Oltre ai metodi dell'asse che recuperano raccolte di elementi e attributi, sono disponibili altri metodi dell'asse che consentono di scorrere la struttura ad albero con maggior dettaglio.Ad esempio, anziché gestire elementi e attributi, è possibile operare sui nodi della struttura ad albero.I nodi costituiscono un livello di granularità più preciso rispetto a elementi e attributi.Quando utilizzano i nodi, è possibile esaminare commenti XML, nodi di tipo text, istruzioni di elaborazione e altro ancora.Questa funzionalità è ad esempio utile per chi intende scrivere il codice per un elaboratore di testo e desidera salvare i documenti in formato XML.Tuttavia, la maggior parte dei programmatori XML è interessata principalmente a elementi, attributi e ai relativi valori.

Metodi per il recupero di una raccolta di elementi

Di seguito sono riepilogati i metodi della classe XElement (o delle relative classi di base) che vengono chiamati su un oggetto XElement per restituire una raccolta di elementi.

Metodo

Descrizione

XNode.Ancestors

Restituisce un IEnumerable<T> di XElement dei progenitori dell'elemento.Un overload restituisce un IEnumerable<T> di XElement dei progenitori per i quali è stato specificato XName.

XContainer.Descendants

Restituisce un IEnumerable<T> di XElement dei discendenti dell'elemento.Un overload restituisce un IEnumerable<T> di XElement dei discendenti per i quali è stato specificato XName.

XContainer.Elements

Restituisce un IEnumerable<T> di XElement degli elementi figlio dell'elemento.Un overload restituisce un IEnumerable<T> di XElement degli elementi figlio per i quali è stato specificato XName.

XNode.ElementsAfterSelf

Restituisce un IEnumerable<T> di XElement degli elementi che seguono l'elemento corrente.Un overload restituisce un IEnumerable<T> di XElement degli elementi che seguono l'elemento per i quali è stato specificato XName.

XNode.ElementsBeforeSelf

Restituisce un IEnumerable<T> di XElement degli elementi che precedono l'elemento corrente.Un overload restituisce un IEnumerable<T> di XElement degli elementi che precedono l'elemento per i quali è stato specificato XName.

XElement.AncestorsAndSelf

Restituisce un IEnumerable<T> di XElement dell'elemento e dei relativi progenitori.Un overload restituisce un IEnumerable<T> di XElement degli elementi per i quali è stato specificato XName.

XElement.DescendantsAndSelf

Restituisce un IEnumerable<T> di XElement dell'elemento e dei relativi discendenti.Un overload restituisce un IEnumerable<T> di XElement degli elementi per i quali è stato specificato XName.

Metodo per il recupero di un singolo elemento

Il metodo seguente consente di recuperare un singolo elemento figlio da un oggetto XElement.

Metodo

Descrizione

XContainer.Element

Restituisce il primo oggetto XElement figlio per il quale è stato specificato XName.

Metodo per il recupero di una raccolta di attributi

Il metodo seguente consente di recuperare gli attributi da un oggetto XElement.

Metodo

Descrizione

XElement.Attributes

Restituisce un IEnumerable<T> di XAttribute di tutti gli attributi.

Metodo per il recupero di un singolo attributo

Il metodo seguente consente di recuperare un singolo attributo da un oggetto XElement.

Metodo

Descrizione

XElement.Attribute

Restituisce l'oggetto XAttribute per il quale è stato specificato XName.

Vedere anche

Concetti

Assi LINQ to XML