掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
utf-8形式のXMLファイルをDOMにLoadするには? (ID:100178)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 私も「XMLファイルのUTF-8形式での編集、新規作成」を > VB6.0(SP6)にてコーディングを行っておりますが、 問題となるのは、「編集」というよりも「保存」時ではありませんか? DomDocument.Save メソッドでの保存は、ロード中の XML データの <?xml version='1.0' encoding='euc-jp'?> などの encoding 指定に引きずられますので、注意が必要です。 文字コードを指定して保存したいのであれば、 doc.Save stm の代わりに、 stm.WriteText doc.xml の構文を試してみてください。これは、先の投稿に記述した >>>> ADODB.Stream にWriteText して、それを SaveToFile すれば OK。 の処理に相当します。 xml プロパティを使う方法の場合、<?xml version="1.0"?> 部の encoding 指定が付きませんが、UTF-8 (あるいは UTF-16)の場合は、 encoding 指定が不要なので、特に問題はないでしょう。 > 上記を実行すると、MSXML2.Domdocument30のsaveメソッド > (doc.save stmの部分)で引数不正のエラーにてこけます。 その際の、具体的なエラーメッセージは何ですか? たとえば、doc.parseError.errorCode <> 0 となる、異常な XML が ロードされた状態の DOM を Save しようとした場合、 doc.parseError.reason 相当のエラーが発生する事があります。 あるいは、保存時のコードにしても、 doc.Save stm ならば正常に動作するコードも、 doc.Save(stm) にすると、エラー438の 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」 が発生する事があります。 > IStream(Streamとは違う?)も ADODB の Stream オブジェクトや、MSXML の DOMDocument オブジェクトは、 いずれも、「IStream インターフェイス」を実装した COM クラスです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.