閉じる

Xerces 3.1にて DOMWriterから DOMLSOutputへ

Xercesを 2.8から 3.1へ更新したところ、DOMWriterが影も形も見つからない。
3.1では DOMLSOutputを使うらしいので書き換え。

元のコード

1978-0.cpp
DOMWriter* pSerializer = static_cast<DOMImplementationLS*>(pImpl)->createDOMWriter();
pSerializer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true);
LocalFileFormatTarget formTarget( filepath.c_str() );
pSerializer->writeNode(&formTarget, *pDoc);
delete pSerializer;

新しいコード

1978-1.cpp
DOMLSSerializer *writer = static_cast<DOMImplementationLS*>(pImpl)->createLSSerializer();
writer->getDomConfig()->setParameter(XMLString::transcode("format-pretty-print"), true);
DOMLSOutput* output = static_cast<DOMImplementationLS*>(pImpl)->createLSOutput();
LocalFileFormatTarget target(filepath.c_str());
output->setByteStream(&target);
writer->write(pDoc, output);
output->release();
writer->release();

書き換え内容自体はたいしたことないけど、普段から Xercesを使っているわけではなく悩んだのでメモ。

# PopRssというローカル POP3サーバに見える RSSリーダ、かなり昔にサポートを終了しているのだけどソースが公開されているので自分用のパッチを当てつつ使っているのであった。

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)