From 809fbda03c5014ba9cd361f5113d1d717cd41ea6 Mon Sep 17 00:00:00 2001 From: louis Date: Tue, 26 Jan 2016 18:32:38 +0100 Subject: Version 0.8.0 beta --- extensions/libxmlwrapper.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 extensions/libxmlwrapper.h (limited to 'extensions/libxmlwrapper.h') diff --git a/extensions/libxmlwrapper.h b/extensions/libxmlwrapper.h new file mode 100644 index 0000000..3971bb9 --- /dev/null +++ b/extensions/libxmlwrapper.h @@ -0,0 +1,46 @@ +#ifndef __LIBXMLWRAPPER_H +#define __LIBXMLWRAPPER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; +typedef pair stringpair; +typedef map stringmap; + +class cLibXMLWrapper { +private: + xmlParserCtxtPtr ctxt; + xmlDocPtr doc; + xmlNodePtr root; + xmlNodePtr current; + stack nodeStack; +protected: + void DeleteDocument(void); + bool ReadXMLFile(const char *path, bool validate = true); + bool SetDocument(void); + bool Validate(void); + bool CheckNodeName(const char *name); + const char *NodeName(void); + vector ParseAttributes(void); + bool LevelDown(void); + bool LevelUp(void); + bool NextNode(void); + bool GetAttribute(string &name, string &value); + bool GetNodeValue(string &value); +public: + cLibXMLWrapper(void); + virtual ~cLibXMLWrapper(void); + static void InitLibXML(); + static void CleanupLibXML(); +}; + +#endif //__LIBXMLWRAPPER_H \ No newline at end of file -- cgit v1.2.3