it-swarm.com.de

Wie transformiere ich eine XML-Datei mit XSLT in Python?

Schönen Tag! Xml muss mit xslt in Python konvertiert werden. Ich habe einen Beispielcode in PHP.

Wie implementiere ich das in Python oder wo finde ich etwas ähnliches? Danke!

$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);
57
aphex

Mit 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))
94
unutbu

LXML ist eine weit verbreitete Hochleistungsbibliothek für die XML-Verarbeitung in python basierend auf libxml2 und libxslt - sie enthält Funktionen für - auch XSLT .

5
miku

Der beste Weg ist, dies mit lxml zu tun, aber es wird nur XSLT 1 unterstützt

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)

um XSLT 2 zu verwenden, können Sie die Optionen von Verwenden Sie Saxon mit Python

1
Maliqf