00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _phtml_h_
00021 #define _phtml_h_
00022
00023 #include "pclasses/pexport.h"
00024 #include <string>
00025 #include <map>
00026
00027 namespace P {
00028
00030
00033 class PCORE_EXPORT HTMLParser {
00034 public:
00035 HTMLParser();
00036 virtual ~HTMLParser();
00037
00038 typedef std::map<std::string, std::string> attr_map;
00039
00041 void parse(const char* buffer, int len);
00042
00044 void finish();
00045
00047 void reset();
00048
00050 virtual void documentStart() {}
00051
00053 virtual void documentEnd() {}
00054
00055 virtual void comment(const std::string& text) {}
00056
00057 virtual void characters(const char* text, unsigned len) {}
00058
00060 virtual void elementStart(const std::string& name, const attr_map& attrs) {}
00061
00063 virtual void elementEnd(const std::string& name) {}
00064
00065 virtual void warning(const std::string& msg) {}
00066 virtual void error(const std::string& msg) {}
00067 virtual void fatal(const std::string& msg) {}
00068
00069 private:
00070 struct parser_context;
00071 parser_context* m_context;
00072
00073 };
00074
00075 }
00076
00077 #endif