我想创建一个包含html编码块的xml输出。
这是我的小枝:
<rawXml>
<message>
{% autoescape 'html' %}
<ThisShouldBeEscaped>
<ButItIsnt>Dang</ButItIsnt>
</ThisShouldBeEscaped>
{% endautoescape %}
</message>
</rawXml>
在渲染时,我希望通过这种方式将内容发送到html编码:
<ThisShouldBeEscaped>
<ButItIsnt>Dang</ButItIsnt>
</ThisShouldBeEscaped>
但我得到了完整的原始XML响应:
<rawXml>
<message>
<ThisShouldBeEscaped>
<ButItIsnt>Dang</ButItIsnt>
</ThisShouldBeEscaped>
</message>
</rawXml>
我做错了什么?
答案 0 :(得分:2)
Twig默认情况下不会转义模板标记。如果您希望以这种方式转义HTML,请先将其设置为变量然后autoescape
,或使用常规escape
:
<rawXml>
<message>
{% set myHtml %}
<ThisShouldBeEscaped>
<ButItIsnt>Dang</ButItIsnt>
</ThisShouldBeEscaped>
{% endset %}
{% autoescape 'html' %}
{{ myHtml }}
{% endautoescape %}
<!-- or -->
{{ myHtml|escape }}
</message>
</rawXml>