2013-08-15 5 views
0

J'ai quelques XML en tant que tel:Boucle à travers différents éléments?

<Step> 
<Check>...</Check> 
<Check>...</Check> 
<Action>...</Action> 
</Step> 

Je veux faire une boucle à travers les sous-nœuds de <Step>. Je sais que cette ligne:

foreach (XElement substep in document.Descendants("Check")) 

boucles à travers les seuls éléments, comment puis-je boucle à travers les éléments et les <Check><Action> éléments?

Répondre

2

Pour les éléments descendant de l'étape:

foreach (var element in document.Element("Step").Elements()) 
{ 

} 
+0

Je suis confus par cela. 'Elements (" Step ")' va retourner un 'IEnumerable ', qui n'a pas de méthode 'Elements()' ... –

+0

Correction! La méthode Element renvoie le premier élément correspondant à Name – benPearce

2

Retirez simplement le filtre XName. Cela énumérera à travers tous les éléments enfants.

foreach (XElement substep in document.Root.Elements()) 

Si vous voulez seulement visiter Check et Action éléments, ajoutez

.Where(x => x.Name.LocalName == "Check" || x.Name.LocalName == "Action") 
Questions connexes