Este utilitário simples requer que você tenha o módulo Python e python-lxml (libxml2 instalado no sistema) permitirá que você faça stream dos elementos de análise, transforme cada elemento em XSLT e grave-o no arquivo de resultado imediatamente, sem buffer
#!/usr/bin/env python3
from lxml import etree
import re
_xslt = etree.parse('FILL_XSLT_DOC')
_dom = etree.iterparse('FILL_SOURCE_XML')
transform = etree.XSLT(_xslt)
results = open('FILL_RESULT_XML','w+b')
for elem in _dom:
if (elem[1].tag.endswith('FILL_SEARCHED_ELEMENT_NAME')):
newElem = transform(elem[1])
#print(etree.tostring(newElem,xml_declaration = False,encoding='utf8'))
results.write(etree.tostring(newElem,xml_declaration = False,encoding='utf8'))
results.write(b'\n')
Ok, esteja ciente de que, se o seu XSLT contiver <xsl:strip-space elements="*"/>
, você pode sofrer com esse bug de 2010, link