aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2018-07-08 16:48:59 +0200
committerKim Alvefur <zash@zash.se>2018-07-08 16:48:59 +0200
commit13463cb1004eac4f18270d52002b88e04eee42d5 (patch)
tree7491ff1eae6c276d099760199e6a2103184fdb49
parentb6dc9e444af1612c7ac757d3711f8d514483048b (diff)
downloadprosody-13463cb1004eac4f18270d52002b88e04eee42d5.tar.gz
prosody-13463cb1004eac4f18270d52002b88e04eee42d5.zip
util.stanza: Add method for removing all children with a specific name, xmlns
-rw-r--r--util/stanza.lua10
1 files changed, 10 insertions, 0 deletions
diff --git a/util/stanza.lua b/util/stanza.lua
index 2191fa8e..07365144 100644
--- a/util/stanza.lua
+++ b/util/stanza.lua
@@ -97,6 +97,16 @@ function stanza_mt:add_child(child)
return self;
end
+function stanza_mt:remove_children(name, xmlns)
+ xmlns = xmlns or self.attr.xmlns;
+ return self:maptags(function (tag)
+ if (not name or tag.name == name) and tag.attr.xmlns == xmlns then
+ return nil;
+ end
+ return tag;
+ end);
+end
+
function stanza_mt:get_child(name, xmlns)
for _, child in ipairs(self.tags) do
if (not name or child.name == name)