
VB2005で開発しています。
XMLは初めてです。
お役所への申請をXMLファイルで行う必要があるため、そのための処理を作成しようとしています。
・あらかじめお役所が用意したXMLファイルに必要データを挿入し、ファイルを上書き保存しようと思っています。
・申請自体もお役所の用意したソフトを使用して行います。
いろんなデータを挿入する予定なのですが、そもそも該当のXMLファイルを下記のように開いて保存するだけで、お役所側のソフトからXMLファイルを開けなくなってしまいます。
(正常なXMLファイルではありません。と怒られます。)
'ファイル読み込み
Dim doc As New XmlDocument()
doc.Load(XMLFilePath)
'変更保存
doc.Save(XMLFilePath)
たったこれだけの処理でXMLファイルにどのような変化が生じているのでしょうか??
ちなみにDOMを使用してデータの操作をすることは普通にできます。結果は同じですが・・・。
そもそも開いて閉じただけでどうしてこんなことになるのでしょう(泣)
これって当たり前のことなのでしょうか?
夜通し考えてもわからないので質問させていただきます。
よろしければご教授ください。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
お役所ソフトで作成した オリジナルXMLとVBで作成したXMLファイルを
比較してみればいいのではないですか
Windowsなら FC.EXEっていうファイル比較コマンドがあります
コマンドプロンプトで (ファイル名は適宜修正してください)
FC.EXE 役所.XML VB.XML[ENTER]
または
FC.EXE /B 役所.XML VB.XML[ENTER]
といった使い方をします
日曜日なのにご回答まことにありがとうございました。
おかげさまで何とか問題を回避できました。
今回の原因はVB2005がXMLドキュメントを保存する際に「BOM (Byte Order Mark)」という符号を、ファイルの頭に自動的に付加することが原因だったようです。
http://www.atmarkit.co.jp/aig/01xml/bom.html
教えて頂いたFC.EXEというのは使用しなかったのですがstir131というフリーのバイナリエディタを使用して使用前後のファイルを比較したところ、確かにBOMがファイルの先頭に付加されておりました。
BOMの外し方もさっぱりわからなかったのですが、幸運にも下記に対処方法をアップされている方がいらっしゃいました。
http://hanatyan.sakura.ne.jp/patio/read.cgi?no=150
ちなみにXMLファイルをLoadする際に「PreserveWhitespace」
というプロパティをTrueに設定しておかないと
XMLファイル内に余分な改行や空白が入ってしまうようでした。
他人のお知恵ばかり拝借して何とかなりましたが、文字コードについてもっと勉強しなければと痛感しました。
重要なヒントを与えていただいて誠にありがとうございました。助かりました。
お探しの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
- WordPress(ワードプレス) ワードプレスにて .xmlファイルの使い方をご存知の方、よろしくお願いいたします。 2 2022/09/30 00:55
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- アプリ おすすめのパスワード管理アプリを教えてください。(iOSとWindows対応) 4 2023/01/19 02:08
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
共有フォルダに誰が何にアクセ...
-
社内Excel共有ブックでの保存ト...
-
Batch: フォルダ内の特定のファ...
-
VBAでCSVファイルが使用中かど...
-
Access VBA を利用して、フォル...
-
相手のPCにVBAからメッセ...
-
拡張子が「cda」のファイルを聞...
-
EXCELファイルをロータス...
-
excelを共有ファイルにすると行...
-
【アクセス】「ほかのユーザー...
-
CSVファイルのデータがA列にま...
-
Dream weaverで、誤ってファイ...
-
月が変わったら自動でシートが...
-
(Excelマクロ)datファイルをエ...
-
VBAで人員管理表を簡単に把握し...
-
質問です。 sdカード内に、デー...
-
JSONファイルの置き場所について
-
AccessVBAで作成したExcelファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
Batch: フォルダ内の特定のファ...
-
共有フォルダに誰が何にアクセ...
-
Access VBA を利用して、フォル...
-
VBAでCSVファイルが使用中かど...
-
AccessVBAで作成したExcelファ...
-
(Excelマクロ)datファイルをエ...
-
excelを共有ファイルにすると行...
-
【アクセス】「ほかのユーザー...
-
社内Excel共有ブックでの保存ト...
-
tmpファイル なぜできる?削除...
-
拡張子が「cda」のファイルを聞...
-
WEBクエリが使えない場合のHPデ...
-
月が変わったら自動でシートが...
-
Excel VBA 処理後データが重た...
-
ファイルの途中に文字列を挿入
-
相手のPCにVBAからメッセ...
-
mdbファイル フォームを開くと...
-
大量のCSVデータを行列の変換を...
おすすめ情報