2009-05-08 21 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); 
} 

編集コメントを再:あなただけのセクションをしたい場合は、その後、使用:

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

ただし、y理論的には "blah"という複数のセクションがあり、それぞれが複数のアイテムを持つことができるので、手動でデータを反復する必要があります。

+0

はdoc.SelectNodes( "/ root/section [@ name = 'blah']") "ではありませんか? – Blankman

+0

@Blankman:このようなセクションの子である* items *に興味がある限り、そうではありません。 – Tomalak

+0

実際に:セクション名が "blah"のアイテムを取得します。

関連する問題