¿Cómo transformar un archivo XML usando XSLT en Python?
converter (3)
La mejor manera es hacerlo usando lxml, pero solo es compatible con 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 puedes verificar las opciones desde Usar saxon con python
¡Buen día! Necesita convertir xml usando xslt en Python. Tengo un código de muestra en php.
¿Cómo implementar esto en Python o dónde encontrar algo similar? ¡Gracias!
$xmlFileName = dirname(__FILE__)."example.fb2";
$xml = new DOMDocument();
$xml->load($xmlFileName);
$xslFileName = dirname(__FILE__)."example.xsl";
$xsl = new DOMDocument;
$xsl->load($xslFileName);
// Configure the transformer
$proc = new XSLTProcessor();
$proc->importStyleSheet($xsl); // attach the xsl rules
echo $proc->transformToXML($xml);
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))