示例#1
0
文件: core.py 项目: muhkuh-sys/mbs
	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)
示例#2
0
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)
示例#3
0
文件: core.py 项目: nfultz/pyxslt
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)