在python中使用xslt转换多个xml文件
我有一个在单个xml文件上运行的xslt脚本,我需要拿出一个python代码,这样我就可以使用该代码运行这个xslt,并使用一些python代码在xslt的输出中插入一些东西?是否可以使用python调用外部xslt脚本 例如在python中使用xslt转换多个xml文件,python,xslt-2.0,Python,Xslt 2.0,我有一个在单个xml文件上运行的xslt脚本,我需要拿出一个python代码,这样我就可以使用该代码运行这个xslt,并使用一些python代码在xslt的输出中插入一些东西?是否可以使用python调用外部xslt脚本 例如 input dir有一些xml,xslt在这些输入xml上运行,并使用python脚本在输出目录中创建文件。是的,这是可能的,请参阅或 关于使用多个XML文件,您有几个选项: 使用参数并将其值设置为要加载的文档URI,并使用XSLT中的document函数加载多个输入文档
input dir有一些xml,xslt在这些输入xml上运行,并使用python脚本在输出目录中创建文件。是的,这是可能的,请参阅或 关于使用多个XML文件,您有几个选项:
document
函数加载多个输入文档关于您关于创建多个输出文档的问题,XSLT1.0(通常与Python一起使用)不太容易,但是您可以切换到使用,尽管这需要更多的设置工作。一旦完成此操作,您可以使用
xsl:result-document
创建多个结果文档以动态计算位置,如果您愿意的话。您可以使用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)
要使用XSLT2,您可以从