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")
文字コードについても初心者ですので、ヒントになるようなことでも教えていただければ幸いです。
よろしくお願い致します。
No.1
- 回答日時:
私のサイト(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% …)
早速の回答、ありがとうございます!
HIRO's.NET のページを参考にさせていただき、System.Xml.XmlDocument でできましたが、MSXML2.DOMDocument では文字コードを指定して保存することはできないのでしょうか?
また、初歩的なことかもしれませんが、XMLファイルの宣言文にある文字コード(encoding=)はどのように読めば良いのでしょうか。
追加の質問になってしまいますが、
もしご存知でしたら教えていただければ幸いです。
No.2ベストアンサー
- 回答日時:
返事が遅くなりました。
すみません。
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=)を取得する方法はあるのでしょうか。
もし何かご存知でしたらご教授いただければ幸いです。
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダ参照ではなくファイル...
-
エクセルVBA フォームを開く時...
-
【Excel VBA】PDFを作成して,...
-
VBAでファイルパスが長すぎてコ...
-
web.configファイル内、valueに...
-
Lubuntuでフォントをインストー...
-
Microsoft Access エラー 3051
-
ASP上でFileSystemObjectのDele...
-
Excel VBA シートを指定して...
-
FFFTPでサーバに新規フォルダが...
-
VBAでFTPファイル転送がうまく...
-
Response.BinaryReadエラー(Win...
-
EXCEL VBA ファイルが開かれて...
-
ExcelVBAで、隠しフォルダにあ...
-
BitBlt関数について
-
Excelでdatファイルを作成??
-
複数のテキストファイルをexcel...
-
batファイル処理でのテキストフ...
-
Excel VBAどこが間違ってますか?
-
1フォルダに保存できるファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでファイルパスが長すぎてコ...
-
Microsoft Access エラー 3051
-
Lubuntuでフォントをインストー...
-
【Excel VBA】PDFを作成して,...
-
Refreshで落ちる
-
ExcelVBAで、隠しフォルダにあ...
-
Excel VBA シートを指定して...
-
FFFTPでサーバに新規フォルダが...
-
VBAでFTPファイル転送がうまく...
-
フォルダ参照ではなくファイル...
-
エクセルVBA フォームを開く時...
-
グーグルドライブからコピーし...
-
OCXのライセンス
-
ファイルが別のPCで開けない
-
ASP上でFileSystemObjectのDele...
-
ASP.NETで、別サーバーへファイ...
-
VBSで指定したフォルダにファイ...
-
BASP21のアップロードについて
-
【python】pandasでExcel(...
-
vba エクセルダウンロードファ...
おすすめ情報