if not processed:
process(child, obj, clean)
+ elif isinstance(obj, list): # repeat
+ doc = _get_document_element(node)
+ frag = doc.createElement("temporary-fragment") # ugh
+
+ for child in node.childNodes:
+ frag.appendChild(child)
+ node.removeChild(child)
+ for instance in obj:
+ newnode = frag.clone(True)
+ node.appendChild(newnode)
+ process(newnode, instance, clean)
+ if clean:
+ _clean(newnode)
+ # remove all the <fragment> tags
+
+ for child in node.childNodes:
+ if child.name == 'temporary-fragment':
+ for child2 in child.childNodes:
+ node.appendChild(child2)
+ node.removeChild(child)
+
+ if clean:
+ _clean(node)
def alternate(tag, array, *elems):
return array
+def _clean(node):
+ pass
+
# ugh
def _get_document_element(node):
if node.parentNode is None: