以编程方式在浏览器外部应用XSL转换

时间:2011-09-30 16:28:23

标签: xml automation python-3.x xslt

我有XML数据,我希望能够通过XSL Transform在浏览器中显示,也可以使用XeLaTeX进行编译。在XML文件中,我已经将样式表设置为浏览器的样式表,目前,为了获得LaTeX输出,我必须进入XML文件,更改它,在浏览器中打开它,将其复制到文件中,保存该文件并针对它运行XeLaTeX。

相反,我想保留与XSLT样式表关联的XML文件,将其转换为XHTML,并且只需要一个构建脚本:

  1. 将LaTeX XSL转换文件应用于XML文件,将结果写入.tex文件。
  2. 针对它运行XeLaTeX。
  3. 再次针对它运行XeLaTex(该文档需要第二遍)。
  4. 清除日志文件等,除非指示不这样做。
  5. 我知道怎么做#2-#4。完成#1的最佳方法是什么?例如,是否有用于将XSL转换应用于XML文档的Python3配方?

2 个答案:

答案 0 :(得分:2)

如果您在XSLT 1.0中编写的样式表可以使用libxslt到lxml(libxml2& libxslt python绑定)。查找lxml examples(链接到Google网络缓存,因为http://lxml.de上没有实际网页)

答案 1 :(得分:1)

在@Phillip Kovalev的带领下,我提出了这个Python3代码:

from lxml import etree 
def transform(xsltpath:str, xmlpath:str):
    return etree.XSLT(etree.parse(xsltpath))(etree.parse(xmlpath))
def main():
    import sys
    print(transform(sys.argv[1], sys.argv[2]))

if __name__ == '__main__':
    main()

lxml的开发人员的称赞 - 就像一个魅力!