Este dilema se puede resolver de variadas maneras, pero nosotros te dejamos la resolución más completa en nuestra opinión.
Solución:
Usando lxml,
import lxml.etree as ET
dom = ET.parse(xml_filename)
xslt = ET.parse(xsl_filename)
transform = ET.XSLT(xslt)
newdom = transform(dom)
print(ET.tostring(newdom, pretty_print=True))
LXML es una biblioteca de alto rendimiento ampliamente utilizada para el procesamiento de XML en python basada en libxml2 y libxslt; también incluye funciones para XSLT.
La mejor manera es hacerlo usando lxml, pero solo admite XSLT 1
import os
import lxml.etree as ET
inputpath = "D:\temp\"
xsltfile = "D:\temp\test.xsl"
outpath = "D:\output"
for dirpath, dirnames, filenames in os.walk(inputpath):
for filename in filenames:
if filename.endswith(('.xml', '.txt')):
dom = ET.parse(inputpath + filename)
xslt = ET.parse(xsltfile)
transform = ET.XSLT(xslt)
newdom = transform(dom)
infile = unicode((ET.tostring(newdom, pretty_print=True)))
outfile = open(outpath + "\" + filename, 'a')
outfile.write(infile)
para usar XSLT 2, puede verificar las opciones de Usar saxon con python
Comentarios y calificaciones
Ten en cuenta compartir este tutorial si lograste el éxito.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)