00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _pxml_h_
00021 #define _pxml_h_
00022
00023 #include <pclasses/pexport.h>
00024 #include <string>
00025 #include <map>
00026
00027 namespace P {
00028
00030
00034 class PCORE_EXPORT XMLParser {
00035 public:
00036 XMLParser();
00037 virtual ~XMLParser();
00038
00040 void parse(const char* buffer, int len);
00041
00043 void finish();
00044
00046 bool isWellFormed() const;
00047
00049 void reset();
00050
00052 virtual void documentStart() {}
00053
00055 virtual void documentEnd() {}
00056
00057 virtual void comment(const std::string& text) {}
00058
00059 virtual void characters(const char* text, unsigned len) {}
00060
00062 virtual void elementStart(const std::string& name,
00063 const std::map<std::string, std::string>& attr) {}
00064
00066 virtual void elementEnd(const std::string& name) {}
00067
00068 virtual void warning(const std::string& msg) {}
00069 virtual void error(const std::string& msg) {}
00070 virtual void fatal(const std::string& msg) {}
00071
00072 private:
00073 struct parser_context;
00074 parser_context* m_context;
00075
00076 };
00077
00078 }
00079
00080 #endif