首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python/genshi如何生成动态XML元素

python/genshi如何生成动态XML元素
EN

Stack Overflow用户
提问于 2012-05-30 03:25:20
回答 1查看 662关注 0票数 0

我直接在Python中使用Genshi,使用包含大多数XML内容的模板生成XML。但是,模板中的一些XML元素应该获取由Python程序动态生成的子元素。

以下是我用于Genshi渲染(在Python中)的参数:

代码语言:javascript
复制
stream.render(method='xml', encoding="utf-8", out=outfile_fp, doctype=None)

来自Genshi模板的代码片段:

代码语言:javascript
复制
<mrp:Description py:if="description != None">
    <mrp:XHTMLWithLinks>${description}</mrp:XHTMLWithLinks>
</mrp:Description>

样本值(Python格式):

代码语言:javascript
复制
description = "<p>foo&bar</p>"

实际上,这些值要复杂得多,而且是有效的XHTML。从模板的角度来看,它们的结构是不可预测的。

Genshi将其呈现为以下输出:

代码语言:javascript
复制
<mrp:Description>
    <mrp:XHTMLWithLinks>&lt;p&gt;foo&amp;bar&lt;/p&gt;</mrp:XHTMLWithLinks>
</mrp:Description>

因此,它对特殊的XML字符进行XML转义。

一方面,我对它这样做有一些同情,另一方面,我不清楚如何解决我的问题。

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

安迪

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-30 04:52:38

您应该能够将描述字符串包装在Markup instance中。就像这样

代码语言:javascript
复制
from genshi.core import Markup 
description = Markup(description)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10805391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档