Saltar al contenido

¿Cómo transformar un archivo XML usando XSLT en Python?

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *