是否可以在不提供输入文件的情况下调用xsl Apache FOP,而是传递字符串

时间:2017-04-11 09:01:31

标签: python xml xslt subprocess apache-fop

我正在尝试使用FOP生成PDF。为此,我将获取一个模板文件,使用Jinja2初始化其值,然后通过系统调用将其传递给fop。

是否可以在不通过输入文件的情况下对FOP进行子进程调用,而是直接包含XML的字符串?如果是这样,我将如何这样做?

我希望有类似的东西

fop -fo "XML here" -pdf output.pdf

1 个答案:

答案 0 :(得分:0)

是的,实际上是可能的。

使用python我能够将文件中的xml导入lxml.etree:

tree = etree.parse('FOP_PARENT.fo.xml')

然后使用etree解析include标记:

tree.xinclude()

然后将xml转换回unicode是一个简单的例子:

xml = etree.tounicode(tree)

这就是我让模板工作的方式。希望这有助于有同样问题的人!