我在 Python 中直接使用 Genshi 使用包含大部分 XML 内容的模板来生成 XML。但是,模板中的一些 XML 元素应该获取由 Python 程序动态生成的子元素。
这些是我用于 Genshi 渲染的参数(在 Python 中):
stream.render(method='xml', encoding="utf-8", out=outfile_fp, doctype=None)
Genshi 模板的片段:
<mrp:Description py:if="description != None">
<mrp:XHTMLWithLinks>${description}</mrp:XHTMLWithLinks>
</mrp:Description>
示例值(在 Python 中):
description = "<p>foo&bar</p>"
实际上,这些值更复杂并且是有效的 XHTML。从模板的角度来看,它们的结构是不可预测的。
Genshi 将其呈现为以下输出:
<mrp:Description>
<mrp:XHTMLWithLinks><p>foo&bar</p></mrp:XHTMLWithLinks>
</mrp:Description>
所以它对特殊的 XML 字符进行 XML 转义。
一方面,我对此表示同情,另一方面,我不清楚如何解决我的问题。
奇怪的是,我在这里找到了一些将 XML 作为变量值的答案,并且似乎表明 Genshi 没有对它们进行 XML 转义,例如here和here。
安迪