00001 #ifndef __XMLDOC_H__
00002 #define __XMLDOC_H__
00003
00004 #include <libxml/parser.h>
00005 #include <libxml/xpath.h>
00006 #include <vector>
00007 #include <string>
00008 #include "xmlnode.h"
00009
00010 namespace freedaisy {
00012
00019 class XMLDoc {
00020 public:
00022 XMLDoc();
00024
00027 XMLDoc(std::string filename);
00029 ~XMLDoc();
00031
00034 void parseFile(std::string filename);
00036
00039 void saveFile(std::string filename);
00041 void createDoc();
00043
00046 std::vector<XMLNode> xpathEval(std::string request);
00048 xmlDocPtr getC();
00050
00054 XMLNode createRootNode(std::string name);
00055 protected:
00057
00065 void _createDoc();
00067 xmlDocPtr _xmldoc;
00068 };
00069 }
00070
00071 #endif