2010-06-03 4 views
0

J'essaie de charger des éléments à partir d'un fichier xml. mais XDocument.Load ne semble pas traiter le fichier xml correctement dans ce cas, la méthode renvoie le contenu du fichier XML en un seul nœud.Linq to xml: impossible de charger tous les éléments

ici est le contenu de mon xml:

<processes> 
<process>winamp</process> 
<process>Acrobat</process> 
<process>WinRAR</process> 
</processes> 

et le code qui lit le fichier:

XDocument loaded = XDocument.Load("/process_list.xml"); 
    var x = from a in loaded.Descendants("processes") 
      select a.Element("process"); 
    foreach (var t in x) 
    { 
      Console.WritleLine(t.Value.ToString()); 
    } 

merci

Répondre

3

Votre code sélectionne le premier élément process de chaque processes élément dans le document - dont il n'y en a qu'un.

Pour sélectionner tous process éléments dans le document, essayez ceci:

XDocument doc = XDocument.Load("process_list.xml"); 

foreach (var element in doc.Descendants("process")) 
{ 
    Console.WritleLine(element.Value); 
} 
+0

alors comment puis-je faire sélectionner tous les éléments « processus ». –

+0

essayez d'utiliser le code fourni dtb ... – Foole

+0

merci cela fonctionne. –