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
銀盤花子
参考