xmlhandlers: Fixed indentation and added some semicolons.
[prosody.git] / util / stanza.lua
index d295d5cc35a5fb5453d2fd5906d79b0ec84fe2e4..c817f93b96c7db994d71934d742a02f4b143282d 100644 (file)
@@ -65,7 +65,7 @@ end
 
 function stanza_mt:text(text)
        (self.last_add[#self.last_add] or self):add_direct_child(text);
-       return self; 
+       return self;
 end
 
 function stanza_mt:up()
@@ -93,14 +93,25 @@ function stanza_mt:add_child(child)
        return self;
 end
 
+function stanza_mt:get_child(name, xmlns)
+       for _, child in ipairs(self.tags) do
+               if (not name or child.name == name)
+                       and ((not xmlns and self.attr.xmlns == child.attr.xmlns)
+                               or child.attr.xmlns == xmlns) then
+                       
+                       return child;
+               end
+       end
+end
+
 function stanza_mt:child_with_name(name)
-       for _, child in ipairs(self.tags) do    
+       for _, child in ipairs(self.tags) do
                if child.name == name then return child; end
        end
 end
 
 function stanza_mt:child_with_ns(ns)
-       for _, child in ipairs(self.tags) do    
+       for _, child in ipairs(self.tags) do
                if child.attr.xmlns == ns then return child; end
        end
 end
@@ -112,7 +123,6 @@ function stanza_mt:children()
                        local v = a[i]
                        if v then return v; end
                end, self, i;
-                                           
 end
 function stanza_mt:childtags()
        local i = 0;
@@ -121,7 +131,6 @@ function stanza_mt:childtags()
                        local v = self.tags[i]
                        if v then return v; end
                end, self.tags[1], i;
-                                           
 end
 
 local xml_escape
@@ -306,7 +315,7 @@ if do_pretty_printing then
        function stanza_mt.pretty_print(t)
                local children_text = "";
                for n, child in ipairs(t) do
-                       if type(child) == "string" then 
+                       if type(child) == "string" then
                                children_text = children_text .. xml_escape(child);
                        else
                                children_text = children_text .. child:pretty_print();