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

Is it possible to call xsl Apache FOP without providing an input file but instead passing a string

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

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

我希望有这样的东西

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

是的,实际上这是可能的。

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

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

然后使用etree解析include标签:

tree.xinclude()

然后是将 xml 转换回 unicode 的简单案例:

xml = etree.tounicode(tree)

这就是我使用模板的方式。希望这对遇到同样问题的人有所帮助!