Xerces/Xalan-C++ で XML

コメント/xerces/sax/simple

最終更新: 2015-03-31 (火) 22:05:10 (1356d)

Xerces-C++/SAXで単純なプログラミング

  • DefaultHandler クラスのリンクが切れているので、後で修正します。 -- トゥイー 2011-06-10 (金) 09:49:12
  • リンク切れ直しました。割れた窓は見つけたら直さないとね。 -- トゥイー 2011-07-11 (月) 21:43:40
  • startElement()のattrsを出力しようとしたら#2070のコンパイルエラーで小一時間ほどハマリました。Attributes.hppのincludeがサンプルには足りないのかと思います。 -- 名無し 2013-03-26 (火) 09:36:47
  • Xerces-C++ は1つのファイルをインクルードすれば機能全部が使えるというものではなく、利用する機能に応じてインクルード文を追加する必要があります。これは Xerces-C++ の機能提供方針と思われます。Attributes 型にアクセスする場合は、#include <xercesc/sax2/Attributes.hpp> する必要があります。サンプルは必要最小限に、不要なものは書かない方針のため、このサンプルでは Attributes 型にアクセスしていないので特にインクルードしませんでした。サンプル上は問題ありません。Attributes だけではなく、他にも新しい機能を使う場合は適宜インクルードファイルを追加する必要があります。 -- トゥイー 2013-03-30 (土) 10:43:37
  • どのクラスを使うときどのファイルをインクルードする必要があるのかという対応は、公式のドキュメントを探してありません。ここは C++(より正確には Xerces-C++)の特性ですので、ある程度感が必要になります。 -- トゥイー 2013-03-30 (土) 10:47:14
  • ちなみにサンプル上になぜ Attributes の記述があるのに、使っていないときにはコンパイルできて、使おうとするとコンパイルできなくなるのか?そのポイントは引き数の Attributes が実体ではなく参照だからです(もしくはポインターでも同じような特性があります)。なぜこういうようなことをするのかには意味があって C++ の基礎/定石であったりするので、勉強してみると良いと思います。Effective C++More Effective C++ 辺りを読んで勉強すると良いと思います。大規模C++ソフトウェアデザインなんかもお勧めです。 -- トゥイー 2013-03-30 (土) 10:55:50