diff options
Diffstat (limited to 'libs/pbd/xml++.cc')
-rw-r--r-- | libs/pbd/xml++.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libs/pbd/xml++.cc b/libs/pbd/xml++.cc index c46c5638b8..d5d863e9e5 100644 --- a/libs/pbd/xml++.cc +++ b/libs/pbd/xml++.cc @@ -658,6 +658,22 @@ XMLNode::remove_nodes_and_delete(const string& propname, const string& val) } } +void +XMLNode::remove_node_and_delete(const string& n, const string& propname, + const string& val) +{ + for (XMLNodeIterator i = _children.begin(); i != _children.end(); ++i) { + if ((*i)->name() == n) { + XMLProperty const * prop = (*i)->property (propname); + if (prop && prop->value() == val) { + delete *i; + _children.erase(i); + break; + } + } + } +} + XMLProperty::XMLProperty(const string& n, const string& v) : _name(n) , _value(v) |