#include #include #include #include #include "xmlencodingspy.h" XmlEncodingSpy::XmlEncodingSpy() : d(new EncodingData()) { XML_SetUserData(p, d.get()); XML_SetXmlDeclHandler(p, xmldeclhandler); XML_SetStartElementHandler(p, start); d->p = p; } XmlEncodingSpy::~XmlEncodingSpy() { } void XMLCALL XmlEncodingSpy::xmldeclhandler( void *data, const XML_Char *version, const XML_Char *encoding, int standalone) { EncodingData *d; d = (EncodingData *)data; d->encoding = (encoding) ? encoding : "UTF-8"; } void XMLCALL XmlEncodingSpy::start( void *data, const XML_Char *el, const XML_Char **attr) { EncodingData *d; d = (EncodingData *)data; if (!d->encoding.size()) d->encoding = "UTF-8"; XML_StopParser(d->p, false); }