Comparison

util/stanza.lua @ 3474:730876bbe4e6

util.stanza: Add stanza:matched_children(name, xmlns) [name suggestions welcome]
author Matthew Wild <mwild1@gmail.com>
date Sun, 29 Aug 2010 15:04:34 +0100
parent 2961:db3c0ecce3f4
child 3475:0307a3ac3885
comparison
equal deleted inserted replaced
3473:84fe4d5ac2ed 3474:730876bbe4e6
124 i = i + 1 124 i = i + 1
125 local v = a[i] 125 local v = a[i]
126 if v then return v; end 126 if v then return v; end
127 end, self, i; 127 end, self, i;
128 end 128 end
129
130 function stanza_mt:matched_children(name, xmlns)
131 xmlns = xmlns or self.attr.xmlns;
132 local tags = self.tags;
133 local start_i, max_i = 1, #tags;
134 return function ()
135 for i=start_i,max_i do
136 v = tags[i];
137 if (not name or v.name == name)
138 and (not xmlns or xmlns == v.attr.xmlns) then
139 start_i = i+1;
140 return v;
141 end
142 end
143 end, tags, i;
144 end
145
129 function stanza_mt:childtags() 146 function stanza_mt:childtags()
130 local i = 0; 147 local i = 0;
131 return function (a) 148 return function (a)
132 i = i + 1 149 i = i + 1
133 local v = self.tags[i] 150 local v = self.tags[i]