[ VB.NET / C# ] XML 属性指定でノードを検索 ( XmlDocument.SelectNodes )

Pocket

XmlDocument.SelectNodes メソッドを使用し、属性が一致した要素(ノード)を取得するサンプルコードになります。詳細はコメントを参照ください。

スポンサーリンク


使用するXMLファイル

<?xml version="1.0" encoding="utf-8" ?>
<peple>
  <person id="00001">
    <name>立山一郎</name>
    <age>30</age>
  </person>
  <person id="00002">
    <name>銀盤花子</name>
    <age>20</age>
  </person>
</peple>
XmlDocument.SelectNodes のサンプルコード

VB.NET

Dim xmlPath As String = "D:\sample.xml"

Dim xmldoc As New XmlDocument()

' XML ファイルを読み込む
xmldoc.Load(xmlPath)

' 属性 id='00002' を持つ person の name ノードリストを取得する
Dim personList As XmlNodeList = xmldoc.SelectNodes("//person[@id='00002']/name")

Console.WriteLine(personList.Count.ToString()) ' 取得したノード数を出力
For i As Integer = 0 To personList.Count - 1
    Console.WriteLine(personList(i).InnerXml)  ' 取得したノードの内容を出力
Next

C#

string xmlPath = @"D:\sample.xml";

XmlDocument xmldoc = new XmlDocument();

// XML ファイルを読み込む
xmldoc.Load(xmlPath);

// 属性 id='00002' を持つ person の name ノードリストを取得する
XmlNodeList personList = xmldoc.SelectNodes(@"//person[@id='00002']/name");

Console.WriteLine(personList.Count.ToString()); // 取得したノード数を出力
for(int i=0; i<personList.Count; i++) {
    Console.WriteLine(personList[i].InnerXml);  // 取得したノードの内容を出力
}

実行結果

1
銀盤花子
参考

 

スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>