X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=python%2Fxmltemplate.py;h=434868703e1d014c36525b0feaab72ae087dea7f;hb=cba8eef965a5c243cd8bf51059f3bdd98793a22c;hp=16225926876eef7dc95791a7c40401af6681b707;hpb=7d86bc42d79ffdf9a9bd601716c2f832a123a1ce;p=xml-template diff --git a/python/xmltemplate.py b/python/xmltemplate.py index 1622592..4348687 100644 --- a/python/xmltemplate.py +++ b/python/xmltemplate.py @@ -1,14 +1,21 @@ #! /usr/bin/python import re +import sys import xml.dom.minidom +if sys.version_info[0] > 2: + string = str +else: + string = basestring + + def process_file(filename, obj, clean = True): doc = xml.dom.minidom.parse(filename) process(doc, obj, clean) return doc def process(node, obj, clean = True): - if isinstance(obj, str): # overwrite + if isinstance(obj, string): # overwrite while not node.firstChild is None: node.removeChild(node.firstChild) doc = _get_document_element(node) @@ -35,7 +42,7 @@ def process(node, obj, clean = True): attrs_to_remove = [] if not attrs is None: for i in range(attrs.length): - attr = attrs.item(0) + attr = attrs.item(i) if attr.namespaceURI == "http://template.sesse.net/" and attr.localName == "id": id = attr.value if clean: @@ -63,7 +70,7 @@ def process(node, obj, clean = True): if not processed: process(child, obj, clean) - elif isinstance(obj, list): # repeat + elif hasattr(obj, '__iter__'): # repeat doc = _get_document_element(node) frag = doc.createElement("temporary-fragment") # ugh