summaryrefslogtreecommitdiff
path: root/libs/pbd/xml++.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/pbd/xml++.cc')
-rw-r--r--libs/pbd/xml++.cc16
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)