0

我在 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>&lt;p&gt;foo&amp;bar&lt;/p&gt;</mrp:XHTMLWithLinks>
</mrp:Description>

所以它对特殊的 XML 字符进行 XML 转义。

一方面,我对此表示同情,另一方面,我不清楚如何解决我的问题。

奇怪的是,我在这里找到了一些将 XML 作为变量值的答案,并且似乎表明 Genshi 没有对它们进行 XML 转义,例如herehere

安迪

4

1 回答 1

0

您应该能够将描述字符串包装在标记实例中。就像是

from genshi.core import Markup 
description = Markup(description)
于 2012-05-29T20:52:38.407 回答