Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
xerces_dom [2008/04/14 20:15] kmioduszewski |
xerces_dom [2008/04/14 20:32] kmioduszewski |
||
---|---|---|---|
Linia 67: | Linia 67: | ||
} | } | ||
</code> | </code> | ||
+ | |||
Linia 101: | Linia 102: | ||
} | } | ||
+ | </code> | ||
+ | |||
+ | Dobrym pomysłem jest zastosowanie własnego ''ErrorHandler'' do wykrywania błędów składniowych w trakcie parsowania i wyświetlania o nich informacji (typ, miejsce wystąpienia). Najprostszy to zaimplementować metody z interfejsu ''HandlerBase'': | ||
+ | <code cpp> | ||
+ | #include <xercesc/sax/HandlerBase.hpp> | ||
+ | |||
+ | class myErrorHandler : xercesc::HandlerBase { | ||
+ | void warning( const xercesc::SAXParseException& e ) { | ||
+ | char *msg = xercesc::XMLString::transcode(e.getMessage()); | ||
+ | std::cout << "warning: " << msg | ||
+ | << " | line: " << e.getLineNumber() << std::endl; | ||
+ | xercesc::XMLString::release(&msg); | ||
+ | } | ||
+ | void error( const xercesc::SAXParseException& e ) { | ||
+ | cout << "error: " << xercesc::XMLString::transcode(e.getMessage()) | ||
+ | << " | line: " << e.getLineNumber() << endl; | ||
+ | } | ||
+ | void fatalError( const xercesc::SAXParseException& e ) { | ||
+ | cout << "fatalError: " << xercesc::XMLString::transcode(e.getMessage()) | ||
+ | << " | line: " <<e.getLineNumber() << endl; | ||
+ | } | ||
+ | void resetErrors() {} | ||
+ | }; | ||
</code> | </code> |