diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-08-11 22:06:47 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-08-11 22:06:47 +0100 |
| commit | 2cd9086c95686117ffbce92188d50d525ed488bb (patch) | |
| tree | fec3df69122ad2d88a19bf3a20fcd5eda3b8d3d7 /src/xml.cc | |
| parent | 91bcf6289c86d08fc994f123b0fd6ec2f2ba6603 (diff) | |
Various tweaks for a real-life DCP.
Diffstat (limited to 'src/xml.cc')
| -rw-r--r-- | src/xml.cc | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -107,6 +107,27 @@ XMLNode::int64_node (string name) return lexical_cast<int64_t> (string_node (name)); } +int64_t +XMLNode::optional_int64_node (string name) +{ + list<xmlpp::Node*> nodes = xml_nodes (name); + if (nodes.size() > 2) { + throw XMLError ("duplicate XML tag " + name); + } + + if (nodes.empty ()) { + return 0; + } + + return int64_node (name); +} + +float +XMLNode::float_node (string name) +{ + return lexical_cast<float> (string_node (name)); +} + void XMLNode::ignore_node (string name) { |
