00001
00002
00003 #ifndef MIX_DOMPARSER_H_
00004 #define MIX_DOMPARSER_H_
00005
00006 #include "classes.h"
00007 #include "DefaultXMLTraits.h"
00008 #include "SAX_Parser.h"
00009
00010 namespace MiX{
00016 template <class Char,class Traits,class XMLTraits>
00017 class DOM_Parser : public SAX_EventHandler<Char,Traits,XMLTraits>{
00018 public:
00019 MiX_Template_Typedef(Char,Traits,XMLTraits);
00020 typedef DOM_Parser<Char,Traits,XMLTraits> this_type;
00021 typedef NodeContainer<Char,Traits,XMLTraits> nodecontainer_type;
00022 private:
00024 SAX_Parser<Char,Traits,XMLTraits> parser_;
00026 NodeContainer<Char,Traits,XMLTraits>* current_;
00027 public:
00029 virtual ~DOM_Parser(){ };
00031 virtual void onXMLDeclaration(attrmap_type attr);
00033 virtual void onStart(string_type name,attrmap_type attr);
00035 virtual void onEnd(string_type name);
00037 virtual void onText(string_type text);
00039 virtual void onComment(string_type text);
00040
00042 document_type& parse(const Char* text);
00049 void setIgnoreSpace(bool flag){
00050 parser_.setIgnoreSpace(flag);
00051 };
00052 };
00053 }
00054
00055 #ifndef MIX_DOMPARSER_CPP_
00056 #include "DOM_Parser.cpp"
00057 #endif
00058
00059 #endif