如何通过树枝逃脱具有 html-entities 的整个块?
How to escape entire block with html-entities via twig?
我想创建一个包含 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>
我做错了什么?
Twig 默认不会转义模板标记。如果您希望以这种方式转义您的 HTML,请先将其设置为一个变量,然后将其设置为 autoescape
,或者使用常规的 escape
:
<rawXml>
<message>
{% set myHtml %}
<ThisShouldBeEscaped>
<ButItIsnt>Dang</ButItIsnt>
</ThisShouldBeEscaped>
{% endset %}
{% autoescape 'html' %}
{{ myHtml }}
{% endautoescape %}
<!-- or -->
{{ myHtml|escape }}
</message>
</rawXml>
我想创建一个包含 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>
我做错了什么?
Twig 默认不会转义模板标记。如果您希望以这种方式转义您的 HTML,请先将其设置为一个变量,然后将其设置为 autoescape
,或者使用常规的 escape
:
<rawXml>
<message>
{% set myHtml %}
<ThisShouldBeEscaped>
<ButItIsnt>Dang</ButItIsnt>
</ThisShouldBeEscaped>
{% endset %}
{% autoescape 'html' %}
{{ myHtml }}
{% endautoescape %}
<!-- or -->
{{ myHtml|escape }}
</message>
</rawXml>