vb2017にてXMLの読み込みについて

タグの編集
投稿者 超初心者  (社会人) 投稿日時 2020/11/12 18:45:55
VisualBasic中学校>雑記>VB/C#でXMLの読み込みの中にXmlReaderを使う方法があります。
こちらのコードを実行すると問題なく動作致しました。
こちらのコードを少し変更して既存のXMLファイルから読み込む用にしたいのですが、どの様に変更すれば良いのか分かりません。
語彙力がないので、上手く伝わっているのか不安ですが、宜しくお願い致します。

'xmlファイルは「C:\sample.xml」に保存しています。

<?xml version=""1.0"" encoding=""utf-8"" ?>")
<history>")
  <location>日本</location>")
  <era name=""奈良時代"" start=""710"" end=""794"">")
    <person name=""坂上田村麻呂"">")
      <image>https://xxxxxx/x1.jpg</image>")
      <note>征夷大将軍</note>")
    </person>")
  </era>")
  <era name=""平安時代"" start=""794"" end=""1185"">")
    <person name=""藤原道長"">")
      <note>摂政。藤原家の摂関政治の絶頂。</note>")
    </person>")
    <person name=""清少納言"">")
      <note>枕草子</note>")
    </person>")
  </era>")
</history>")

'下記の箇所をどの様に変更するのかが分かりません。
Dim xmlText As String = Me.LoadXmlSample1Text
Using stream As New MemoryStream(System.Text.Encoding.UTF8.GetBytes(xmlText))
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/11/12 19:09:17
> 'xmlファイルは「C:\sample.xml」に保存しています。

権限的な理由により、C: ドライブのルートにファイルを置くことはあまりお奨めしません。
フォルダーの下に配置するとか、あるいはシステムドライブ以外に配置することをお奨めします。

また、保存した XML ファイルの文字コードが UTF-8 になっていることも確認しておきましょう。


> <?xml version=""1.0"" encoding=""utf-8"" ?>")
> <history>")
提示頂いた内容は、XML の文法としてはとしては正しくないように見えますね。
行末に「")」がありますし、属性の引用符も重複しています。

VB 上の文字列…だとしても何だか不自然な記述に見えますが、もしかして
StringBuilder.AppendLine メソッドの呼び出しの一部を切り取ったものでしょうか。


> '下記の箇所をどの様に変更するのかが分かりません。
> Dim xmlText As String = Me.LoadXmlSample1Text
> Using stream As New MemoryStream(System.Text.Encoding.UTF8.GetBytes(xmlText))

たとえば

Using stream As New MemoryStream(System.IO.File.ReadAllBytes("C:\sample.xml"))

もしくは

Dim xmlText As String = System.IO.File.ReadAllText("C:\sample.xml", System.Text.Encoding.UTF8)
Using stream As New MemoryStream(System.Text.Encoding.UTF8.GetBytes(xmlText))

などと書けそうです。
投稿者 超初心者  (社会人) 投稿日時 2020/11/13 05:38:16
的確なご指導を頂き有難うございます。
問題なく開く事が出来ました。