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 エスケープしなかったことを示しているように見えるいくつかの回答を見つけまし

アンディ

4

1 に答える 1

0

マークアップ インスタンスで説明文字列をラップできるはずです。何かのようなもの

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