- PR -

DOMでロードしたデータに含まれるスペースについて

1
投稿者投稿内容
YUA
会議室デビュー日: 2005/05/26
投稿数: 4
投稿日時: 2005-05-26 15:21
開発環境
VC7++、Xerces2.6.1

XML文書を読み込んで属性を追加するプログラムを作成しています。
上記のプログラムで作成されたXMLをテキストエディター等で開くと、
すべての文字と文字の間にスペースが入ったものになってしまいます。
(ブラウザソフトでは開くことができません)

こんな感じです。
<TAG> ⇒ < T A G >

このスペースが入らない方法はありますか?

XMLについては初心者なのでSampleプログラムのDOMPrintを元に作成しました。
Sampleプログラムを実行するとXMLをメモリに読み込んだときすでにスペースが
入ってるようです。


よろしくお願いします。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2005-05-26 17:16
出力を バイナリ・エディタで表示して
スペース ?
を確認します。
メモ帳では、x20 と x00 の見た目は同じです

[ メッセージ編集済み 編集者: MMX 編集日時 2005-05-26 17:20 ]
YUA
会議室デビュー日: 2005/05/26
投稿数: 4
投稿日時: 2005-05-26 17:58
MMXさん 返信ありがとうございます。

バイナリ・エディタで見たところx00でした。

私の説明がへたくそで申し訳ないです。
ソースは、(抜粋ですが)

XMLの読み込み
 XercesDOMParser *parser = new XercesDOMParser;
 parser->parse(aaa.xml);
 doc = (DOMNode*)parser->getDocument();

XMLの書き出し
 XMLCh tempStr[100];
XMLString::transcode("LS", tempStr, 99);
DOMImplementation *pImpl=DOMImplementationRegistry::getDOMImplementation(tempStr);
 DOMWriter *theSerializer = ((DOMImplementationLS*)pImpl)->createDOMWriter();
 XMLFormatTarget *myFormTarget;
myFormTarget = new LocalFileFormatTarget(bbb.xml);
 theSerializer->writeNode(myFormTarget, *doc);


としたときに作成されるbbb.xmlの中身が
< ? x m l v e r s i o n = " 1 . 0 "
この様になってしまいます。

スペースが入らないようにXML書き出しをすることは可能でしょうか
Atsushi.Eno
ベテラン
会議室デビュー日: 2003/04/23
投稿数: 60
投稿日時: 2005-05-27 03:32
それって単にut-16で出力されているだけのように思えます。
ファイル出力のエンコーディングを調整してみてはどうでしょう。
YUA
会議室デビュー日: 2005/05/26
投稿数: 4
投稿日時: 2005-05-30 09:48

ご指摘の通りUTF-16でエンコーディングされたXMLファイルだったようです。
メモ帳では問題なくみえてました。

MMXさん、Atsushi.Enoさん どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)