我在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-escape特殊的XML字符。
一方面,我对此表示同情,另一方面,我不清楚如何解决问题。
奇怪的是,我在这里找到了一些将XML作为变量值的答案,似乎表明Genshi没有对它们进行XML转义,例如here和here。
安迪
答案 0 :(得分:0)
您应该能够将描述字符串包装在Markup instance中。像
这样的东西from genshi.core import Markup
description = Markup(description)