00001 /* libIXAml - IXA Taldea */ 00002 00003 #ifndef _XMLSIMPLENODE_H 00004 #define _XMLSIMPLENODE_H 00005 00006 #include "xmlsimpleattr.h" 00007 #include <string> 00008 #include <list> 00009 00012 class XMLSimpleNode { 00013 00014 std::string name; 00015 std::string text; 00016 std::list<XMLSimpleAttr> attrs; 00017 std::list<XMLSimpleNode*> children; 00018 XMLSimpleNode* parent; 00019 00020 public: 00021 00023 XMLSimpleNode(); 00024 00028 XMLSimpleNode(const XMLSimpleNode & n); 00029 00034 XMLSimpleNode(const std::string & n, const std::string & t); 00035 00043 XMLSimpleNode(const std::string & n, const std::string & t, const std::list<XMLSimpleAttr> a, const std::list<XMLSimpleNode*> c, XMLSimpleNode* p); 00044 00048 std::string getName() const; 00049 00053 std::string getText() const; 00054 00058 std::list<XMLSimpleAttr> getAttrs() const; 00059 00064 std::string getAttrValue(const std::string & n) const; 00065 00069 std::list<XMLSimpleNode*> getChildren() const; 00070 00075 std::list<XMLSimpleNode*> getChildren(const std::string & n) const; 00076 00080 XMLSimpleNode* getFirstChild() const; 00081 00086 XMLSimpleNode* getFirstChild(const std::string & n) const; 00087 00091 XMLSimpleNode* getParent() const; 00092 00096 void putName(const std::string & n); 00097 00101 void putText(const std::string & t); 00102 00106 void putAttrs(const std::list<XMLSimpleAttr> & a); 00107 00111 void addAttr(const XMLSimpleAttr & a); 00112 00117 void addAttr(const std::string & n, const std::string & v); 00118 00122 void putChildren(const std::list<XMLSimpleNode*> & c); 00123 00127 void addChild(XMLSimpleNode* c); 00128 00132 void putParent(XMLSimpleNode* p); 00133 00137 std::string node2string() const; 00138 00142 std::string getXmlString() const; 00143 00144 }; 00145 00146 #endif // _XMLSIMPLENODE_H