vb2017にてXMLの読み込みについて への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
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))
などと書けそうです。
権限的な理由により、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/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))
こちらのコードを実行すると問題なく動作致しました。
こちらのコードを少し変更して既存の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))
問題なく開く事が出来ました。