diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-07-08 22:40:36 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-07-08 22:40:36 +0100 |
| commit | 689b1a86d0c4cf4937492f4680457a133df368c6 (patch) | |
| tree | 1c17ec644538bbcb0fe3b54141e8833a002efff0 /src/cxml.cc | |
| parent | 760ce54a39af82c0f4ea35f836228ce239d5a76d (diff) | |
Add the ability to find the root node name of some XML.
Diffstat (limited to 'src/cxml.cc')
| -rw-r--r-- | src/cxml.cc | 9 |
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 (); } } |
