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

美好的一天! 需要在Python中使用xslt来转换xml。 我有一个在PHP示例代码。

如何在Python中实现这个或者在哪里find类似的东西? 谢谢!

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

使用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是一个广泛使用的高性能库,用于基于libxml2和libxslt的python中的XML处理 – 它还包括用于XSLT的工具 。

最好的方法是使用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,您可以使用python使用saxon来检查选项