00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __SAXPARSER_H
00018 #define __SAXPARSER_H
00019
00020 #include <stdio.h>
00021
00022 class SAXParser;
00023
00024
00035 class SAXHandler
00036 {
00037 friend class SAXParser;
00038 protected:
00039 SAXParser *parser;
00040
00041
00042 virtual void setParser(SAXParser *p) {parser=p;}
00043
00044 public:
00048 SAXHandler() {parser=0;}
00049
00053 virtual ~SAXHandler() {}
00054
00058 virtual void startElement(const char *name, const char **atts) {}
00059
00063 virtual void endElement(const char *name) {}
00064
00068 virtual void characterData(const char *s, int len) {}
00069
00073 virtual void processingInstruction(const char *target, const char *data) {}
00074
00078 virtual void comment(const char *data) {}
00079
00083 virtual void startCdataSection() {}
00084
00088 virtual void endCdataSection() {}
00089 };
00090
00091
00100 class SAXParser
00101 {
00102 protected:
00103 char errortext[512];
00104 SAXHandler *saxhandler;
00105 void *currentparser;
00106
00107 public:
00111 SAXParser();
00112
00116 void setHandler(SAXHandler *sh);
00117
00124 bool parse(const char *filename);
00125
00129 int getCurrentLineNumber();
00130
00134 const char *getErrorMessage() {return errortext;}
00135 };
00136
00137 #endif
00138