投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/1/28 20:37:58
> 一つ気になったのですが、この変数は必要なのでしょうか?
> Private iniData As XDocument

あー。済みません。不要です。

VB2008 用の検証コードを作った時、提示したコードの前に
下記の XML 形式に変換するメソッドを作っていたので、その名残です。

iniData = <?xml version="1.0"?>
          <ini>
              <section name="Section1">
                  <data>データ</data>
                  <data>データデータ</data>
                  <data>データデータデータ</data>
              </section>
              <section name="Section2">
                  <data>データ</data>
                  <data>データデータ</data>
                  <data>データデータデータ</data>
              </section>
              <section name="Section3">
                  <data>データ</data>
                  <data>データデータ</data>
                  <data>データデータデータ</data>
              </section>
          </ini>



この形式にしておくと、

'XPath 式による問い合わせ 

'Imports System.Xml.XPath 
ListBox1.DataSource = iniData.XPathSelectElements("//section[@name='Section2']/data").ToList()

とか、

'Linq による問い合わせ 
Dim s() As String = (From q In iniData.Root.<section>.<data> _
                     Where q.Parent.@name = "Section3" _
                     Select q.Value).ToArray()


と書けて、後で取り出しやすくなるかな…と思って作ってみたのですが、
実際には Dictionary クラスで管理した方が使いやすかったです。