Xerces-C++ を使ってみる
とある理由でウエブアプリから入手できるXMLパーサーを作る必要にかられている。別のところでウェブアプリとして作っておいたのだが、ホスト自体の運用が終わってしまったわけ。ウェブアプリでもいいのだけど、もう少し手を入れやすく、スタンドアロンアプリとしてC++で作ってみる事にする。
ダウンロードしたXMLファイルをパースするのもいいが、もうアプリの中でデーターをサーバーから取得、それを適当に料理して表示・ファイルに書き出しできれば十分。というわけでXMLパーサーを選択。
順当なところならばlibxml++あたりでよさげなのだが、オンラインでデータ取得するには、たぶん別の何かが必要?で、Xerces-C++を使う事にする。
http://xerces.apache.org/xerces-c/
URLから入手する方法が書かれている所がよくわからんかったので、適当につくってみた。
基本としては
- XMLURLクラスでURLを指定
- URLInputSource を XMLURLから作る。(たぶん直接つくればいいのだろうが、引数の意味がよくわからん)
- 適当なパーサーにURLInputSourceオブジェクトを食わせる
で良さそう。少なくとも保存したXMLファイルと直接URLを指定する場合で、出力が一緒になった。
あとは適当なハンドラを書いて、フォーマットすればよろし。(実のところはxhtmlで処理するほうがいいような気はしている)