feb18

Convertire una tabella XML in classi con LINQ


Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in /var/www/web2/html/mondoinformatico.info/nuovo/wp-content/plugins/paginated-comments/paginated-comments.php(475) : eval()'d code on line 50

Dopo il mio post su come serializzare una classe con LINQ oggi voglio presentarvi il processo inverso, ovvero come popolare una classe o una lista di classi a partire da un file XML.

Per il nostro esempio supponiamo di avere il file xml che contiene l’elenco delle regioni italiane di voler convertire tali dati in una lista di oggetti C#.

Supponiamo che il nostro file xml sia cosi strutturato:

<regioni>
<regione>
<codRegione>02</codRegione>
<descRegione>BASILICATA</descRegione>
</regione>
<regione>
<codRegione>03</codRegione>
<descRegione>CALABRIA</descRegione>
</regione>
<regione>
<codRegione>04</codRegione>
<descRegione>CAMPANIA</descRegione>
</regione>
<regione>
<codRegione>05</codRegione>
<descRegione>EMILIA ROMAGNA</descRegione>
</regione>
<regione>
<codRegione>06</codRegione>
<descRegione>FRIULI V. GIULIA</descRegione>
</regione>
...
</regioni>

Sarà quindi necessario definire la classe Regione che conterrà i dati della singola regione nel seguente modo:


public class Regione
{
public String codRegione { get; set; }
public String descRegione { get; set; }
}

Con queste premesse vediamo ora come, sfruttando la potenza di LINQ, sia possibile popolare una lista di regioni a partire dal file xml:


public static List<regione> popolaRegioni(string nomeFileXml)
{
List<regione> lstRegioni = new List<regione>();


var regions = from p in            XElement.Load(nomeFileXml).Elements("regioni").Elements("regione")
orderby (string)p.Element("descRegione") ascending
select new Regione
{
codRegione = (string)p.Element("codRegione"),
descRegione = (string)p.Element("descRegione")
};

foreach (var reg in regions)
lstRegioni.Add(reg);


return lstRegioni;
}

Non ci sono commenti

Non ci sono commenti per questo articolo

Lascia un commento

Registrati a Mondo Informatico lasciare commenti, ascrivere articoli e guadagnare da subito con il paid to write con un unico nickname e avatar. Inoltre potrai segnalare notizie, scrivere articoli e mantenere lo storico nella tua pagina personale.

Se sei già registrato effettua il Login

Ricorda i miei dati per la prossima volta
Inviami una e-mail quando ci sono altri commenti