00001
00002
00003 #ifndef __XMLDOC_H__
00004 #define __XMLDOC_H__
00005
00006 #include <libxml/parser.h>
00007 #include <libxml/xpath.h>
00008 #include <vector>
00009 #include <string>
00010 #include "xmlnode.h"
00011
00012 namespace freedaisy {
00014
00021 class XMLDoc {
00022 public:
00024 XMLDoc();
00026
00029 XMLDoc(std::string filename);
00031 ~XMLDoc();
00033
00036 void parseFile(std::string filename);
00038
00041 void saveFile(std::string filename);
00043 void createDoc();
00045
00048 std::vector<XMLNode> xpathEval(std::string request);
00050 xmlDocPtr getC();
00052
00056 XMLNode createRootNode(std::string name);
00057 protected:
00059
00067 void _createDoc();
00069 xmlDocPtr _xmldoc;
00070 };
00071 }
00072
00073 #endif