2009-05-08 3 views
1

Мой XML, как:Как я могу использовать XPath для получения элементов?

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

Я буду иметь несколько «разделы» в XML, я хочу, чтобы извлечь определенный раздел.

В этом случае мне нужно получить предметы, которые находятся в разделе «blah».

+1

btw, ваш xml некорректен (отсутствует) –

ответ

4

XPath тогда:

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

, например, в XmlDocument:

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

Edit повторно комментарии: если вы просто хотите секции, а затем использовать:

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

, но затем y ou'll нужно будет перебирать данные вручную (так как теоретически вы можете иметь несколько разделов с именем «бла», каждый из которых может иметь несколько элементов).

+0

не будет doc.SelectNodes ("/ root/section [@ name = 'blah']") ?? – Blankman

+0

@Blankman: Пока вы заинтересованы в * деталях *, которые являются дочерними элементами такого раздела. – Tomalak

+0

действительно: получить предметы, имеющие название раздела «бла».

Смежные вопросы