43 doc( )
const {
return m_doc; }
55 xml_doc( ) : m_xmlDocPtr(), m_namespaces_init(false) { }
56 xml_doc( xmlDocPtr doc ) : m_xmlDocPtr( new xmlDocPtrHandle(doc) ), m_namespaces_init(false) { }
59 xml_doc(
const xml_doc &rhs ) : m_xmlDocPtr( rhs.m_xmlDocPtr ), m_namespaces_init(false) { }
61 operator=(
const xml_doc &rhs )
63 m_xmlDocPtr = rhs.m_xmlDocPtr;
64 m_namespaces_init =
false;
68 void doc_to_file(
const char * path,
bool formatted=
false);
69 bool valid()
const {
return m_xmlDocPtr == NULL ? false :
true; }
70 xml_node get_root_node()
const;
72 xml_node add_node(
const char *xpath,
const char* ns_prefix,
const char* name,
75 xml_node add_node(
const char* ns_prefix,
const char* name,
const char* content);
76 xml_node_set exec_xpath(
const char *xpath );
77 xml_node_set exec_xpath(
const observation &xpath );
80 typedef std::map<const xmlChar *, const xmlChar *> namespace_map_t;
81 namespace_map_t &get_namespaces();
82 void register_namespaces( xmlXPathContextPtr ctx );
83 void collect_namespaces( xmlNodePtr node );
85 namespace_map_t m_namespaces;
86 boost::shared_ptr<xmlDocPtrHandle> m_xmlDocPtr;
87 bool m_namespaces_init;
93 xml_node() : m_node( 0 ), m_doc(0 ) { }
94 xml_node( xmlNodePtr node, xmlDocPtr doc) : m_node( node ), m_doc( doc ) { }
100 bool valid( )
const {
return m_node == NULL ? false :
true; }
101 xml_node add_node(
const char* ns_prefix,
const char* name,
const char* content);
102 void add_attribute(
const char* ns_prefix,
const char* name,
const char* value);
103 void set_attribute(
const char* ns_prefix,
const char* name,
const char* value);
104 xml_node_set get_sub_nodes( )
const;
107 void set_content(
const char *content );
108 tom::String get_content(
const char *sub_node )
const;
111 tom::String get_attribute(
const char * att_name )
const;