こんな感じです。
Module Module1
Sub Main()
Dim l_strPath As String = "C:\Text.xml"
Dim l_dstデータセット As DataSet
Dim l_encエンコーディング As System.Text.Encoding = System.Text.Encoding.GetEncoding(932)
'データセットを書く
'http://okwave.jp/kotaeru.php3?q=1583980
l_dstデータセット = 作成_データセット()
'データセットを出力
Call XML_書(l_dstデータセット, l_strPath)
'データセットを初期化
l_dstデータセット = New DataSet()
'データセットを読込
Call XML_読(l_dstデータセット, l_strPath)
End Sub
Sub XML_書(ByVal p_dstデータ As DataSet, ByVal p_strファイル As String)
Dim l_str出力フォルダ As String = IO.Path.GetDirectoryName(p_strファイル)
'出力実行
Dim l_swXML As New IO.StreamWriter(p_strファイル)
p_dstデータ.WriteXml(l_swXML, XmlWriteMode.WriteSchema)
l_swXML.Close()
l_swXML = Nothing
End Sub
Sub XML_読(ByRef p_dstデータ As DataSet, ByVal p_strファイル As String)
'読込実行
Dim l_swXML As New IO.StreamReader(p_strファイル)
Dim l_xrdXML As New Xml.XmlTextReader(l_swXML)
p_dstデータ.ReadXml(l_xrdXML)
l_xrdXML.Close()
l_swXML.Close()
l_swXML = Nothing
End Sub
Function 作成_データセット() As DataSet
Dim l_dtbデータテーブル As New DataTable("新テーブル")
Dim l_drwデータロウ As DataRow
Dim i As Integer
Dim l_dstデータセット As New DataSet()
l_dtbデータテーブル.Columns.Add("文字型", System.Type.GetType("System.String"))
l_dtbデータテーブル.Columns.Add("整数型", System.Type.GetType("System.Int32"))
l_dtbデータテーブル.Columns.Add("長整数型", System.Type.GetType("System.Int64"))
For i = 1 To 26
l_drwデータロウ = l_dtbデータテーブル.NewRow
l_drwデータロウ.Item("文字型") = Chr(48 + i) & Chr(64 + i)
l_drwデータロウ.Item("整数型") = i * 1000
l_drwデータロウ.Item("長整数型") = i * 1000000
l_dtbデータテーブル.Rows.Add(l_drwデータロウ)
Next
l_dstデータセット.Tables.Add(l_dtbデータテーブル)
Return l_dstデータセット
End Function
End Module
補足
ファイルが開きっぱなしってことはわかるのですが、クローズする方法がわからないんです。 あと、XMLでのデータの取り扱いがこれで本当によいのかどうかもわからない状態です。