176 |
177 |
177 function stanza_mt:child_with_name(name) |
178 function stanza_mt:child_with_name(name) |
178 for _, child in ipairs(self.tags) do |
179 for _, child in ipairs(self.tags) do |
179 if child.name == name then return child; end |
180 if child.name == name then return child; end |
180 end |
181 end |
|
182 return nil; |
181 end |
183 end |
182 |
184 |
183 function stanza_mt:child_with_ns(ns) |
185 function stanza_mt:child_with_ns(ns) |
184 for _, child in ipairs(self.tags) do |
186 for _, child in ipairs(self.tags) do |
185 if child.attr.xmlns == ns then return child; end |
187 if child.attr.xmlns == ns then return child; end |
186 end |
188 end |
|
189 return nil; |
187 end |
190 end |
188 |
191 |
189 function stanza_mt:get_child_with_attr(name, xmlns, attr_name, attr_value, normalize) |
192 function stanza_mt:get_child_with_attr(name, xmlns, attr_name, attr_value, normalize) |
190 for tag in self:childtags(name, xmlns) do |
193 for tag in self:childtags(name, xmlns) do |
191 if (normalize and normalize(tag.attr[attr_name]) or tag.attr[attr_name]) == attr_value then |
194 if (normalize and normalize(tag.attr[attr_name]) or tag.attr[attr_name]) == attr_value then |
192 return tag; |
195 return tag; |
193 end |
196 end |
194 end |
197 end |
|
198 return nil; |
195 end |
199 end |
196 |
200 |
197 function stanza_mt:children() |
201 function stanza_mt:children() |
198 local i = 0; |
202 local i = 0; |
199 return function (a) |
203 return function (a) |