Jean Georges PERRIN ([EMAIL PROTECTED]) wrote : > 1/ Any idea about how to make that in C++ ?
I've set up a couple of C++ classes in order to be able to parse XML with Xerces C++ from an istream. Is it possible to have them included into the distribution ? - Gilles. ========================================================== #include <util/BinInputStream.hpp> #include <sax/InputSource.hpp> #include <iostream> class IStreamBinInputStream : public BinInputStream { istream & mIn; public: IStreamBinInputStream(istream & in : BinInputStream(), mIn(in) { } virtual ~IStreamBinInputStream(void) { } virtual unsigned int curPos(void) const { return mIn.tellg(); } virtual unsigned int readBytes(XMLByte * const buf, const unsigned int max) { mIn.read(buf, max); return mIn.gcount(); } }; class IStreamInputSource : public StdInInputSource { istream & mIn; public: IStreamInputSource(istream & in) : InputSource("istream"), mIn(in) { } virtual ~IStreamInputSource(void) { } virtual BinInputStream * makeStream(void) const { return new IStreamBinInputStream(mIn); } }; ========================================================== Usage : { ... DOM_Parser parser; IStreamInputSource isis(myIStream); parser.parse(isis); ... }