include/df/xml.hpp

00001 //XML file loader
00002 
00003 class XMLAttr {
00004   public:
00005     String name;
00006     String value;
00007 };
00008 
00009 class XMLTag {
00010   public:
00011     //data
00012     String name;  //<"NAME">
00013     List<XMLAttr *> args;  //<name "ARGS=XYZ ETC...">
00014     String uname; //<"NAME1">  //unique name
00015     String content;  //<name> "CONTENT" </name>
00016     List<XMLTag *>list;  //children
00017     XMLTag *parent;
00018 };
00019 
00020 class XMLFile : public SystemCode, public Enumerator {
00021   private:
00022     XMLTag *enumpath;
00023     int enumidx;
00024   public:
00025     int Line;  //indicates last line read (useful only if error occurs on Read())
00026     XMLTag header;  //<?xml version="1.0" encoding="UTF-8"?>
00027     XMLTag root;
00028     BOOL Read(File &f);
00029     BOOL Read(char *fn, int flgs = FO_RDONLY);
00030     BOOL AddTag(XMLTag *);   //add tag to root tag
00031     XMLTag *GetTag(char *path); //find a tag using uname path (ie: "tag1/tag2/comment1")
00032     void DeleteAll(); //clear root and all children hiearchy
00033     BOOL DeleteTag(XMLTag *t);  //delete any tag
00034     BOOL Write(File &f);
00035     BOOL Write(char *fn, int flgs = FO_RDWR | FO_CREATE | FO_TRUNC);
00036     XMLFile();
00037     ~XMLFile() {DeleteAll();}
00038     //Enumerator class members
00039     BOOL First(char *);
00040     BOOL Next();
00041     BOOL Close();
00042     BOOL IsFolder();
00043     void GetRootPath(String &s);
00044 };
00045 
00046 

Generated on Mon Mar 5 09:49:14 2007 for DigiForce by  doxygen 1.4.7