VB.NETでXMLファイルを読み込む方法について説明する。
XMLファイルの読み込み方法は、何通りかの方法があるが、単純な方法で説明する。
以下、サンプル。
《XMLファイル》
1.以下のXMLをメモ帳に貼り付ける。
2.ファイル名を「Settings.xml」として保存する。
※ファイルの種類を"すべての形式"にして保存すること!
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<AppName>XMLの読込みサンプル</AppName>
<Input>
<File>"C:\Test\Input.txt"</File>
</Input>
<Output>
<File>"C:\Test\Output.txt"</File>
</Output>
</Settings>
XMLファイルの読み込み方法は、何通りかの方法があるが、単純な方法で説明する。
以下、サンプル。
《XMLファイル》
1.以下のXMLをメモ帳に貼り付ける。
2.ファイル名を「Settings.xml」として保存する。
※ファイルの種類を"すべての形式"にして保存すること!
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<AppName>XMLの読込みサンプル</AppName>
<Input>
<File>"C:\Test\Input.txt"</File>
</Input>
<Output>
<File>"C:\Test\Output.txt"</File>
</Output>
</Settings>
《コード》
Public Class Settings
Public Shared Sub Main()
'XMLファイルのファイルパスを指定する
'サンプルでは、実行ファイルと同じ場所に保管している
Dim xmlRdr As New XmlTextReader("./Setting.xml")
'XMLファイルを読み込む
While xmlRdr.Read()
Console.WriteLine("タグ階層=" & xmlRdr.Depth())
Console.WriteLine("開始タグ=" & xmlRdr.Name)
Console.WriteLine("値(Value)=" & xmlRdr.Value())
Console.WriteLine("値(ReadString)=" & _
xmlRdr.ReadString())
End While
End Sub
End Class
このサンプルを実行すると、開始タグ、値(Value)、値(ReadString())の関係がおかしいことに気が付くと思う。
開始タグが表示されている場合、値(Value)は何も表示されず、値(ReadString())は表示される。
また、値(Value)が表示されている場合、開始タグと値(ReadString())は表示されない。
これは、XMLファイルを読む際に開始タグ、値、終了タグは、別のタイミングで読み込まれるために発生する。
以下のサンプルを動作させてみると、別のタイミングで読み込んでいることが良く分かる。
Public Class Settings
Public Shared Sub Main()
'実行ファイルと同じパスにSetting.xmlを用意する
Dim xmlRdr As New XmlTextReader("./Setting.xml")
'XMLファイルを読み込む
While xmlRdr.Read()
Select Case xmlRdr.NoeType
Case XmlNodeType.Element
Console.WriteLine("開始タグ=" & xmlRdr.Name)
'タグ読み込み時に値を取得する方法
Console.WriteLine("値(ReadString())=" & _
xmlRdr.ReadString())
Case XmlNodeType.Text
Console.WriteLine("値(Value)=" & xmlRdr.Value)
Case XmlNodeType.EndElement
Console.WriteLine("終了タグ=" & xmlRdr.Name)
End Select
End While
End Sub
End Class
【補足事項】
・NodeTypeプロパティで読み込んだノードの種類を識別できる。
・ReadString()メソッドは、読み込んだノードが開始タグの場合に値を取得するメソッド。
→Textや終了タグを読み込んでいる場合には、値は取得できない。
・Depthプロパティを利用すると、ノードの階層を知ることができる。
・XMLファイルの読み込み方法には、他にもXMLDocumentを利用した読み込み方法等がある。
Public Class Settings
Public Shared Sub Main()
'XMLファイルのファイルパスを指定する
'サンプルでは、実行ファイルと同じ場所に保管している
Dim xmlRdr As New XmlTextReader("./Setting.xml")
'XMLファイルを読み込む
While xmlRdr.Read()
Console.WriteLine("タグ階層=" & xmlRdr.Depth())
Console.WriteLine("開始タグ=" & xmlRdr.Name)
Console.WriteLine("値(Value)=" & xmlRdr.Value())
Console.WriteLine("値(ReadString)=" & _
xmlRdr.ReadString())
End While
End Sub
End Class
このサンプルを実行すると、開始タグ、値(Value)、値(ReadString())の関係がおかしいことに気が付くと思う。
開始タグが表示されている場合、値(Value)は何も表示されず、値(ReadString())は表示される。
また、値(Value)が表示されている場合、開始タグと値(ReadString())は表示されない。
これは、XMLファイルを読む際に開始タグ、値、終了タグは、別のタイミングで読み込まれるために発生する。
以下のサンプルを動作させてみると、別のタイミングで読み込んでいることが良く分かる。
Public Class Settings
Public Shared Sub Main()
'実行ファイルと同じパスにSetting.xmlを用意する
Dim xmlRdr As New XmlTextReader("./Setting.xml")
'XMLファイルを読み込む
While xmlRdr.Read()
Select Case xmlRdr.NoeType
Case XmlNodeType.Element
Console.WriteLine("開始タグ=" & xmlRdr.Name)
'タグ読み込み時に値を取得する方法
Console.WriteLine("値(ReadString())=" & _
xmlRdr.ReadString())
Case XmlNodeType.Text
Console.WriteLine("値(Value)=" & xmlRdr.Value)
Case XmlNodeType.EndElement
Console.WriteLine("終了タグ=" & xmlRdr.Name)
End Select
End While
End Sub
End Class
【補足事項】
・NodeTypeプロパティで読み込んだノードの種類を識別できる。
・ReadString()メソッドは、読み込んだノードが開始タグの場合に値を取得するメソッド。
→Textや終了タグを読み込んでいる場合には、値は取得できない。
・Depthプロパティを利用すると、ノードの階層を知ることができる。
・XMLファイルの読み込み方法には、他にもXMLDocumentを利用した読み込み方法等がある。
- カテゴリ:
- VB.NET