A volte capita di avere una struttura XML dove lo stesso nodo può apparire su più livelli. Ad esempio, in un file che rappresenta l'albero genealogico della famiglia, il nodo figlio può apparire su diversi livelli.
<padre ...> <figli> <figlio ...> <figli> <figlio ...>
In questi casi, se si vogliono ritrovare tutti i nodi di tipo figlio, si deve creare una routine ricorsiva. Fortunatamente, LINQ to XML ha già un metodo che fa al nostro caso: Descendants. Questo metodo fa parte della della classe XContainer e si preoccupa di effettuare una ricerca ricorsiva partendo dal nodo su cui chiamiamo il metodo.
var doc = XDocument.Load(filename); var elements = doc.Descendants("figlio");
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Change tracking e composition in Entity Framework
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
I più letti di oggi
- Creare agenti facilmente con Azure AI Agent Service
- Loggare le query più lente con Entity Framework
- Disabilitare le run concorrenti di una pipeline di Azure DevOps
- Rendere i propri workflow e le GitHub Action utilizzate più sicure
- Gestione degli eventi nei Web component HTML
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- Fornire parametri ad un Web component HTML