def __init__(self, element, stylesheet, options): self.stylesheet = stylesheet self.baseUri = options['baseUri'] self.content = None subOptions = options.copy() subOptions['namespaces'] = subOptions['namespaces'].copy() subOptions['namespaces'].update(tools.getNamespaceBindings(element)) self.namespaces = subOptions['namespaces'] children = self.initImpl(element, stylesheet, subOptions)
def fixNamespaces(node): """Add missing namespace definitions (xmlns: attributes) for namespace URI's used in node subtree""" if node.nodeType == xml.dom.Node.ELEMENT_NODE: ns = tools.getNamespaceBindings(node) if node.namespaceURI not in ns.values(): node.setAttributeNS(xml.dom.XMLNS_NAMESPACE, 'xmlns:'+node.prefix, node.namespaceURI) for i in range(node.attributes.length): attr = node.attributes.item(i) if attr.namespaceURI not in ns.values() and attr.namespaceURI != xml.dom.XMLNS_NAMESPACE: node.setAttributeNS(xml.dom.XMLNS_NAMESPACE, 'xmlns:'+attr.prefix, attr.namespaceURI) else: for i in node.childNodes: fixNamespaces(i)
def fixNamespaces(node): """Add missing namespace definitions (xmlns: attributes) for namespace URI's used in node subtree""" if node.nodeType == xml.dom.Node.ELEMENT_NODE: ns = tools.getNamespaceBindings(node) if node.namespaceURI not in ns.values(): node.setAttributeNS(xml.dom.XMLNS_NAMESPACE, 'xmlns:' + node.prefix, node.namespaceURI) for i in range(node.attributes.length): attr = node.attributes.item(i) if attr.namespaceURI not in ns.values( ) and attr.namespaceURI != xml.dom.XMLNS_NAMESPACE: node.setAttributeNS(xml.dom.XMLNS_NAMESPACE, 'xmlns:' + attr.prefix, attr.namespaceURI) else: for i in node.childNodes: fixNamespaces(i)