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 |
---|---|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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 |
---|---|
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 |
---|---|
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 |
---|---|
Restituisce l'oggetto XAttribute per il quale è stato specificato XName. |