VB.NETでXMLファイルの特定のタグの値を取得する方法

はじめに

ここではVB.NETでXMLファイルの特定のタグの値を取得する方法を示します。当記事では、XMLファイルから特定のタグの値を取得し、それをコンソールに表示します。

前提条件

開発言語:vb.net

.xmlファイルの「testId」タグの値をプログラムから取得し、コンソールに表示させる

.xmlファイルは以下とする

<?xml version="1.0" encoding="utf-8"?>
<root>
  <registParameter>
    <defaultParameter>
      <testId>12345</testId>
    </defaultParameter>
  </registParameter>
</root>

コード

コードは以下

Imports System.Xml

Module Module1

    Sub Main()
        ' XMLファイルのパス
        Dim xmlFilePath As String = "path\to\your\file.xml"

        ' XmlDocumentオブジェクトを作成し、XMLファイルを読み込む
        Dim xmlDoc As New XmlDocument()
        xmlDoc.Load(xmlFilePath)

        ' testIdの値を取得
        Dim testId As String = xmlDoc.DocumentElement.SelectSingleNode("//registParameter/defaultParameter/testId").InnerText

        ' 取得した値をコンソールに表示
        Console.WriteLine(testId)

        ' コンソールを終了しないようにする
        Console.ReadLine()
    End Sub

End Module

SelectSingleNode は、XmlDocument クラスや XmlNodeクラスのメソッドで、指定したXPath式に一致する最初のノードを返すメソッドです。このメソッドを使うと、XMLドキュメント内の特定の要素や属性を簡単に検索し取得することができます。

XPath(XML Path Language)は、XML文書内のノードを選択するための言語です。SelectSingleNode メソッドで使用されるXPath式には、特定のノードを指定するためのさまざまな構文があります。その中で、「//」 は非常に重要な役割を持つ構文の一つです。

//」はXPath式で、ドキュメント全体を通して指定した要素を検索するために使用されます。これは、指定した要素がどの位置にあっても一致するものを見つけることを意味します。簡単に言えば、ルート要素からその要素がどこにあっても検索する、という意味になります。

InnerText プロパティは、XmlNode オブジェクトのプロパティであり、そのノードのテキスト内容を取得または設定するために使用されます。具体的には、そのノードの全ての子ノードのテキスト内容を連結して取得します。