如何在 Python 中使用 XSLT 转换 XML 文件?

您好! 需要在 Python 中使用 xslt 转换 xml。

如何在 Python 中实现这一点,或者在哪里可以找到类似的东西? 谢谢!

$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);
91650 次浏览

LXML 是基于 libxml2和 libxslt 的 Python 中用于 XML 处理的一个广泛使用的高性能库-它包含 还有 XSLT的工具。

使用 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,但它只支持 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)

要使用 XSLT 2,可以检查 在蟒蛇中使用撒克逊语中的选项