2009-05-08 9 views
1

Mon XML est comme:Comment utiliser XPath pour obtenir des éléments?

<root> 
    <section name="blah"> 
    <item name="asdf">2222</item> 
    </section> 
</root> 

Je vais avoir plusieurs 'sections' dans le XML, je veux chercher une section particulière.

Dans ce cas, je dois obtenir des éléments qui se trouvent dans la section nommée "bla".

+1

btw, votre fichier XML est mal formé (manquant) –

Répondre

4

Le XPath est alors:

/root/section[@name='blah']/item 

par exemple, dans XmlDocument:

foreach(XmlElement item in doc.SelectNodes("/root/section[@name='blah']/item")) 
{ 
    Console.WriteLine(item.GetAttribute("name")); 
    Console.WriteLine(item.InnerText); 
} 

Modifier à nouveau les commentaires: si vous voulez juste les sections, utilisez:

/root/section[@name='blah'] 

mais alors y Vous aurez besoin d'itérer les données manuellement (puisque vous pouvez théoriquement avoir plusieurs sections nommées «bla», chacune pouvant avoir plusieurs éléments).

+0

ne serait-ce pas doc.SelectNodes ("/ root/section [@ name = 'blah']") ?? – Blankman

+0

@Blankman: Pas aussi longtemps que vous êtes intéressé par les * éléments * qui sont l'enfant d'une telle section. – Tomalak

+0

en effet: obtenir des articles qui ont un nom de section "bla".

Questions connexes