36 #include <libxml/parser.h>
37 #include <libxml/tree.h>
38 #include <boost/shared_ptr.hpp>
58 XMLTree(
const std::string& fn,
bool validate =
false);
65 const std::string&
filename()
const {
return _filename; }
66 const std::string&
set_filename(
const std::string& fn) {
return _filename = fn; }
69 int set_compression(
int);
71 bool read() {
return read_internal(
false); }
72 bool read(
const std::string& fn) { set_filename(fn);
return read_internal(
false); }
74 bool read_and_validate(
const std::string& fn) { set_filename(fn);
return read_internal(
true); }
75 bool read_buffer(
const std::string&);
78 bool write(
const std::string& fn) { set_filename(fn);
return write(); }
80 void debug (FILE*)
const;
82 const std::string& write_buffer()
const;
87 bool read_internal(
bool validate);
98 XMLNode(
const std::string& name,
const std::string& content);
104 const std::string&
name()
const {
return _name; }
107 const std::string&
content()
const {
return _content; }
108 const std::string& set_content(
const std::string&);
109 XMLNode* add_content(
const std::string& s = std::string());
111 const XMLNodeList& children(
const std::string& str = std::string())
const;
112 XMLNode* child(
const char*)
const;
113 XMLNode* add_child(
const char *);
115 void add_child_nocopy(
XMLNode&);
117 std::string attribute_value();
129 void remove_property(
const std::string&);
130 void remove_property_recursively(
const std::string&);
133 void remove_nodes(
const std::string&);
135 void remove_nodes_and_delete(
const std::string&);
137 void remove_nodes_and_delete(
const std::string& propname,
const std::string& val);
139 void dump (std::ostream &, std::string p =
"")
const;
155 XMLProperty(
const std::string& n,
const std::string& v = std::string());
158 const std::string&
name()
const {
return _name; }
159 const std::string&
value()
const {
return _value; }
160 const std::string&
set_value(
const std::string& v) {
return _value = v; }
172 virtual const char*
what()
const throw() {
return _message.c_str(); }
XMLPropertyList::const_iterator XMLPropertyConstIterator
XMLNodeList::iterator XMLNodeIterator
std::list< boost::shared_ptr< XMLNode > > XMLSharedNodeList
const XMLPropertyList & properties() const
const std::string & content() const
const std::string & value() const
const XMLProperty * property(const std::string &n) const
const std::string & name() const
const std::string & name() const
bool read_and_validate(const std::string &fn)
std::list< XMLProperty * > XMLPropertyList
XMLNodeList _selected_children
std::map< std::string, XMLProperty * > XMLPropertyMap
bool write(const std::string &fn)
std::list< XMLNode * > XMLNodeList
virtual const char * what() const
const XMLProperty * property(const char *n) const
XMLNode * set_root(XMLNode *n)
const std::string & filename() const
RouteGroup::RouteGroup(Session &s, const string &n) add_property(_relative)
bool read(const std::string &fn)
const std::string & set_filename(const std::string &fn)
XMLPropertyList _proplist
XMLException(const std::string msg)
XMLPropertyList::iterator XMLPropertyIterator
const std::string & set_value(const std::string &v)
XMLNodeList::const_iterator XMLNodeConstIterator