toge's diary

コンピュータ関連の趣味をつらつらと。

RapidXMLで辛い点

ちょっとづつ使っているとライブラリの得手不得手が分かるものですね。

RapidXMLの場合に私が困るのは次の2点かなぁ。まあ、速度と使いやすさにおいて補って余りある特徴があるから、今の所は困らないけど。

エラー発生場所が分からない

一度メモリに読み込むタイプなので、ファイルのどこでエラーが発生したのかさっぱり分からない。一応読み込み失敗時のエラーにはエラー発生場所が書いてあるんだけど、これはエラーと判断した文字のアドレスでしかない。だから、ここから直感的に場所を調べるのはできない。その上、タグの綴じ忘れだったりすると、ファイルの終端になっちゃうのでさっぱり場所は分からない。

ライブラリを簡単に修正することで回避できないかなぁと模索してるけど、そんなに簡単ではなさそう。

空白とかを削除してくれない。

一般的にはXML Parserは空白とかをうまく処理してくれるもんだけど、RapidXMLはそういうことを基本的にしない。

これはRapidXMLがパフォーマンスを重視した実装になっているため。

「渡された文字列をそのまま使い、DOMのノードはその文字列の場所だけを覚える」実装になっているので、元の文字列を変更するような処理はRapidXMLではしないことになっている。