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
00020 class CLASSEXPORT skExpatParser
00021 {
00022 public:
00024 skExpatParser();
00025
00032 skElement * parse(istream& in);
00033
00040 skElement * parse(const skString& in);
00041 private:
00043 skExpatParser(const skExpatParser&);
00044 skExpatParser& operator=(const skExpatParser&);
00045
00046 static void startElementHandler(void * userData,const char *name, const char **atts);
00047 void startElement(const char *name, const char **atts);
00048
00049 static void endElementHandler(void * userData,const char *name);
00050 void endElement(const char *name);
00051
00052 static void characterDataHandler(void *userData, const XML_Char *s,int len);
00053 void characterData(const XML_Char *s,int len);
00054
00055 static void startCDataHandler(void *userData);
00056 void startCData();
00057
00058 static void endCDataHandler(void *userData);
00059 void endCData ();
00060
00061 skNodeList m_ElementStack;
00062 bool m_InCData;
00063 skElement * m_RootElement;
00064 };
00065 #endif
00066