00001 00002 00003 00004 00005 00006
00007
00008 #ifndef skEXPATPARSER_H
00009 #define skEXPATPARSER_H
00010
00011 #include "skString.h"
00012 #include <iostream.h>
00013 #include "skElement.h"
00014 #include "expat.h"
00015
00019 class CLASSEXPORT skExpatParser
00020 {
00021 public:
00023 skExpatParser();
00024
00030 skElement * parse(istream& in);
00036 skElement * parse(const skString& in);
00037 private:
00039 skExpatParser(const skExpatParser&);
00040 skExpatParser& operator=(const skExpatParser&);
00041
00042 static void startElementHandler(void * userData,const char *name, const char **atts);
00043 void startElement(const char *name, const char **atts);
00044
00045 static void endElementHandler(void * userData,const char *name);
00046 void endElement(const char *name);
00047
00048 static void characterDataHandler(void *userData, const XML_Char *s,int len);
00049 void characterData(const XML_Char *s,int len);
00050
00051 static void startCDataHandler(void *userData);
00052 void startCData();
00053
00054 static void endCDataHandler(void *userData);
00055 void endCData ();
00056
00057 skNodeList m_ElementStack;
00058 bool m_InCData;
00059 skElement * m_RootElement;
00060 };
00061 #endif
00062