今回はApacheのxercesというXMLパーサを使ってみることにしました。
1. Xercesのダウンロード
http://xerces.apache.org/から"Download"の"Binary Distributions"を選んで、Xerces C++ 2.8.0 - x86-windows-vc_8_0.zipをダウンロードしました。3.0は現時点ではダウンロードできないようでした。
2. Visual Studioでパスの設定
Visual C++ 2008 Express Editionで、展開してできるディレクトリの中の"include"をインクルードディレクトリパスに、"lib"をライブラリパスにそれぞれ設定しました。追加の依存ファイルにはとりあえず"xerces-c_2.lib"だけを追加しました。
3. DLLのパス
展開してできる"bin"ディレクトリの中にある"xerces-c_2_8.dll"が実行時に必要でした。Windowsのパスを設定してもよいのですが、面倒なのでVisual Stuidoのデバッグ用のディレクトリにコピーしました。
4. XMLファイルをパースするサンプルプログラム
http://xerces.apache.org/xerces-c/program-dom-3.html#XercesDOMParserを参考に、サンプルプログラムを作って実行できました。
ただ、getElementByIDを使うにはDTDで何をIDとするかを定義しろとか、文字コードはUTF-16で固定で普通のchar*を得るのにいちいち変換しなければならないなど、かなり面倒っぽかったので今回の簡単な設定ファイルを扱うのにわざわざxercesを使うのはやめました。:(今まで使ったJavaとPHPのXMLパーサと比べるとかなり厳密で扱うのが大変そうでした。。。





