00001 #ifndef XML_H 00002 #define XML_H 00003 00004 #include "tinyxml/tinystr.h" 00005 #include "tinyxml/tinyxml.h" 00006 00007 namespace Xml 00008 { 00024 class Element 00025 { 00026 public: 00027 Element(TiXmlElement *i); 00028 ~Element(); 00029 00030 Element operator()(); 00031 Element operator()(const char *el); 00032 00033 operator bool(); 00034 00035 Element Sibling(); 00036 Element Sibling(const char *el); 00037 00038 const char *operator[](const char *attr); 00039 int Int(const char *attr); 00040 bool Bool(const char *attr); 00041 private: 00042 void BailOut(const char *attr); 00043 00044 TiXmlElement *e; 00045 }; 00046 00049 struct NoDocument 00050 { 00051 NoDocument(const char *src); 00052 string docsrc; 00053 }; 00055 ostream &operator<<(ostream &os , const NoDocument &nd); 00056 00063 class Document 00064 { 00065 public: 00066 Document(const char *src); 00067 ~Document(); 00068 00069 Element operator()(); 00070 Element operator()(const char *el); 00071 private: 00072 TiXmlDocument doc; 00073 }; 00074 } 00075 00076 #endif