summaryrefslogtreecommitdiff
path: root/src/cxml.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-07-08 22:40:36 +0100
committerCarl Hetherington <cth@carlh.net>2014-07-08 22:40:36 +0100
commit689b1a86d0c4cf4937492f4680457a133df368c6 (patch)
tree1c17ec644538bbcb0fe3b54141e8833a002efff0 /src/cxml.cc
parent760ce54a39af82c0f4ea35f836228ce239d5a76d (diff)
Add the ability to find the root node name of some XML.
Diffstat (limited to 'src/cxml.cc')
-rw-r--r--src/cxml.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cxml.cc b/src/cxml.cc
index b251ae7..99055ee 100644
--- a/src/cxml.cc
+++ b/src/cxml.cc
@@ -239,6 +239,11 @@ cxml::Document::Document (string root_name, boost::filesystem::path file)
read_file (file);
}
+cxml::Document::Document ()
+{
+ _parser = new xmlpp::DomParser ();
+}
+
cxml::Document::~Document ()
{
delete _parser;
@@ -270,8 +275,10 @@ cxml::Document::take_root_node ()
}
_node = _parser->get_document()->get_root_node ();
- if (_node->get_name() != _root_name) {
+ if (!_root_name.empty() && _node->get_name() != _root_name) {
throw cxml::Error ("unrecognised root node");
+ } else if (_root_name.empty ()) {
+ _root_name = _node->get_name ();
}
}