From c831cb6b6493072a4be2f88663824808dfc0fd15 Mon Sep 17 00:00:00 2001 From: "sgunderson@bigfoot.com" <> Date: Wed, 6 Sep 2006 17:34:24 +0200 Subject: [PATCH] Start implementing cloning in Python. --- python/xmltemplate.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/python/xmltemplate.py b/python/xmltemplate.py index 83a9e0e..4c1aa0d 100644 --- a/python/xmltemplate.py +++ b/python/xmltemplate.py @@ -46,12 +46,38 @@ def process(node, obj, clean = True): 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 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: -- 2.39.2