sto provando a popolare una lista attingendo i dati da un file xml:
il file xml ha una struttura del tipo:
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>
e così via per i vari ruoli.
ora da questo file voglio popolare una lista e ho pensato di farlo con linq:
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;
}
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.
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.