sto provando a popolare una lista attingendo i dati da un file xml:
il file xml ha una struttura del tipo:
e così via per i vari ruoli.codice:<team> <portieri> <giocatore> <id>000</id> <nome>pippo</nome> <squadra>AAA</squadra> </giocatore> <giocatore> ...</giocatore> ... </portieri> </difensori> <giocatore> <id>001</id> <nome>pippo1</nome> <squadra>AAA</squadra> </giocatore> <giocatore> ... </giocatore> ... </difensori>
ora da questo file voglio popolare una lista e ho pensato di farlo con linq:
questo metodo mi deve restituire una lista di tipo calciatore e prende in input il path del file xml e il ruolo con cui voglio filtrare il risultato, cioè se il ruolo è portieri mi deve restituire una lista formata dai soli giocatori presenti tra i tag portieri del file xml.codice:public static List<Calciatore> SetGiocatori(string xmlFilePath, string ruolo) { List<Calciatore> giocatori = new List<Calciatore>(); var players = from p in XElement.Load(xmlFilePath).Elements("team").Elements(ruolo).Elements("giocatore") select new Calciatore() { Id = (string)p.Element("id").Value, Nome = (string)p.Element("nome").Value, Squadra = (string)p.Element("squadra").Value }; foreach (var p in players) giocatori.Add(p); return giocatori; }
Id, Nome, Squadra sono appunto proprietà della classe calciatore.
il problema è che non va, facendo alcune prove ho notato che non carica nessun elemento nella lista e non sono riuscito a capire perchè. dove sbaglio?
in allegato inserisco un file xml di esempio.
ciao e grazie.

Rispondi quotando