アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB2005, XML の初心者です。

VB2005で encoding="Shift_JIS" や "EUC-JP" のXMLデータをファイルに保存するにはどうすれば良いのでしょうか。
encoding="UTF-8"であれば、下記で保存できますが、="Shift_JIS" や "EUC-JP" になると保存でエラーになってしまいます。

下記ソースでは、strXMLには正しくXMLが入っていますが、saveするとエラーになり、ファイルの中身を確認すると、日本語の箇所で切れていました。

Public Client As TcpClient

Dim stream As NetworkStream
stream = Client.GetStream()

Dim Data(10000) As Byte
Dim len As Int16 = stream.Read(Data, 0, Data.Length)
strXML = System.Text.Encoding.UTF8.GetString(Data, 0, len)

MsxmlDoc = New MSXML2.DOMDocument
Msxmldoc.Loadxml(strXML)
MsxmlDoc.save ( "C:\XML.xml")

文字コードについても初心者ですので、ヒントになるようなことでも教えていただければ幸いです。
よろしくお願い致します。

A 回答 (2件)

私のサイト(HIRO's.NET)で、文字コードを指定してXMLファイルを保存する(

http://hiro.wankuma.com/VBNET2005/XML/DOM/DOM03. …というTipsがありますのでそちらをご覧になってみてください。

文字コードについては、Wikipediaの方をご覧ください(http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97% …
    • good
    • 0
この回答へのお礼

早速の回答、ありがとうございます!

HIRO's.NET のページを参考にさせていただき、System.Xml.XmlDocument でできましたが、MSXML2.DOMDocument では文字コードを指定して保存することはできないのでしょうか?

また、初歩的なことかもしれませんが、XMLファイルの宣言文にある文字コード(encoding=)はどのように読めば良いのでしょうか。

追加の質問になってしまいますが、
もしご存知でしたら教えていただければ幸いです。

お礼日時:2008/02/13 11:35

返事が遅くなりました。


すみません。
MSXML2.DOMDocumentでの文字コード指定による保存ですが、OKWave内でJScript.NETを用いた回答が過去にありましたので、参考URLをご覧になってみてください。
FileStreamを使用することで実現できそうです。

>また、初歩的なことかもしれませんが、XMLファイルの宣言文にある文字コード(encoding=)はどのように読めば良いのでしょうか。
読み込んで何をしたいのでしょうか?
System.Xml.XmlDocumentのLoadXMLメソッドを使用すれば、あまり気にしなくても良いと思うのですが...

参考URL:http://okwave.jp/qa1772802.html

この回答への補足

回答いただいたにもかかわらず、
それに対する補足が遅くなり申し訳ございません。

やりたいことは、Aシステムから通信で送られてきたxmlをBシステムで保存したいのですが、Aシステムからは、EUC, S-jis, UTF-8 のいずれかで送られてくる可能性があるため、宣言文にある文字コード(encoding=)を読んで、それによって処理を分けたいのです。

MSXML2.DOMDocumentで文字コード(encoding=)を取得する方法はあるのでしょうか。

もし何かご存知でしたらご教授いただければ幸いです。
よろしくお願い致します。

補足日時:2008/02/27 16:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!