思うところあって LL からではなく C で libxml2 を使ってみました*1。 普通にメモリ上やファイル上の XML ドキュメントを SAX インタフェースでパースするだけであれば,最上位 API の [http://xmlsoft.org/html/libxml-parser.html#xmlSAXUserParseFile:title=xmlSAXUserParseFile()] や [http://xmlsoft.org/html/libxml-parser.html#xmlSAXUserParseMemory:title=xmlSAXUserParseMemory()] を使えばいいのですが*2,自力ストリーミング I/O と一緒に使う場合どうすればいいのかがわからなかったのでコードを書いてみました。 I/O callback 編 まずは read や close に使う c