我直接在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作为变量值的答案,似乎表明源氏没有对它们进行XML转义,例如here和here。
安迪
发布于 2012-05-30 04:52:38
您应该能够将描述字符串包装在Markup instance中。就像这样
from genshi.core import Markup
description = Markup(description)https://stackoverflow.com/questions/10805391
复制相似问题