Xercesを使用していて、バイナリデータを含むXMLドキュメントをDOMに読み込もうとしています。
<field1>
<data>
[binary data (multiline) here]
</data>
</field1>
<data>
次に、各ノードのコンテンツを前処理用の文字列として取得しています。読み取るためのコードは次のとおりです。
DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(xc_DOMImplementation_Name);
DOMLSSerializer* serializer = ((DOMImplementationLS*)impl)->createLSSerializer();
std::wstring ws(serializer->writeToString(node));
<data></data>
これはコンテンツなしで返されます。また、CDATAブロックを使用してみましたが、役に立ちませんでした。バイナリデータを複数行のASCIIにスワップアウトすると、正常に機能するようです。最初のバイナリ文字が検出されるとすぐに文字列が切り捨てられると思いますが(おそらく空のタグが返されます)、驚くべきことにヌル文字の削除も機能せず、<data></data>
返されました。
Xercesでこれを行うにはどうすればよいですか?unsigned char *を読み込んでそこで操作を実行することにより、ドキュメント全体を前処理することは避けたいと思います。
ありがとう。