2011-09-30 74 views
2

我有我希望能够通过XSL转换在浏览器中显示的XML数据,并且还使用XeLaTeX进行编译。在XML文件内部,我已经将样式表设置为浏览器的样式表,并且目前为了获取LaTeX输出,我必须进入XML文件,更改它,在浏览器中打开它,将它复制到文件中,保存该文件并运行XeLaTeX。以编程方式在浏览器外部应用XSL转换

相反,我想留下它转变为XHTML,XSLT样式表相关的XML文件,只是有一个构建脚本,将:

  1. 应用LaTeX的XSL转换文件的XML文件,将结果写入.tex文件。
  2. 针对它运行XeLaTeX。
  3. 再次运行XeLaTex(文档需要第二遍)。
  4. 清理日志文件等,除非指示不这样做。

我知道怎么做#2-#4。什么是完成#1的最佳途径?例如,是否有一个将XSL转换应用于XML文档的Python3配方?

回答

2

如果您在XSLT 1.0中编写的样式表可以使用libxslt到lxml(libxml2 & libxslt python绑定)。寻找lxml examples(链接到谷歌Web缓存,因为实际的页面不可在http://lxml.de

1

继@Phillip科瓦廖夫给出的带领下,我来到了这个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的开发者的荣誉 - 像一个魅力的工程!

相关问题