diff options
Diffstat (limited to 'tools/xincludator.py')
-rw-r--r-- | tools/xincludator.py | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/tools/xincludator.py b/tools/xincludator.py deleted file mode 100644 index f9ed49c..0000000 --- a/tools/xincludator.py +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/python - -import sys -from sys import argv, stdout, stderr -import codecs, locale -import os -import xml.dom.minidom - -if sys.version_info[0] < 3: - stdout = codecs.getwriter('utf-8')(stdout) - -NS_XI = 'http://www.w3.org/2001/XInclude' - -def xincludate(dom, base, dropns = []): - remove_attrs = [] - for i in range(dom.documentElement.attributes.length): - attr = dom.documentElement.attributes.item(i) - if attr.prefix == 'xmlns': - if attr.localName in dropns: - remove_attrs.append(attr) - else: - dropns.append(attr.localName) - for attr in remove_attrs: - dom.documentElement.removeAttributeNode(attr) - for include in dom.getElementsByTagNameNS(NS_XI, 'include'): - href = include.getAttribute('href') - # FIXME: assumes Unixy paths - filename = os.path.join(os.path.dirname(base), href) - subdom = xml.dom.minidom.parse(filename) - xincludate(subdom, filename, dropns) - if './' in href: - subdom.documentElement.setAttribute('xml:base', href) - include.parentNode.replaceChild(subdom.documentElement, include) - -if __name__ == '__main__': - argv = argv[1:] - dom = xml.dom.minidom.parse(argv[0]) - xincludate(dom, argv[0]) - - if sys.version_info[0] >= 3: - xml = dom.toxml(encoding=None) - else: - xml = dom.toxml() - - stdout.write(xml) - stdout.write('\n') |