2016-04-21 43 views
2

我想創建一個包含html編碼塊的xml輸出。如何通過樹枝使用html實體轉義整個塊?

這是我的枝杈snipplet:

<rawXml> 
    <message> 
     {% autoescape 'html' %} 
      <ThisShouldBeEscaped> 
       <ButItIsnt>Dang</ButItIsnt> 
      </ThisShouldBeEscaped> 
     {% endautoescape %} 
    </message> 
</rawXml> 

渲染,我預計將郵件內容是HTML編碼是這樣的:

&lt;ThisShouldBeEscaped&gt; 
    &lt;ButItIsnt&gt;Dang&lt;/ButItIsnt&gt; 
&lt;/ThisShouldBeEscaped&gt; 

但我得到一個完整的原始XML響應:

<rawXml> 
    <message> 
     <ThisShouldBeEscaped> 
      <ButItIsnt>Dang</ButItIsnt> 
     </ThisShouldBeEscaped> 
    </message> 
</rawXml> 

我在做什麼錯?

+0

http://twigfiddle.com/mtey4z – Matteo

回答

2

樹枝不會默認轉義模板標記。如果你想逃離你的HTML以這種方式,然後將其設置爲可變的第一,然後要麼autoescape,或者使用常規escape

<rawXml> 
    <message> 
     {% set myHtml %} 
     <ThisShouldBeEscaped> 
      <ButItIsnt>Dang</ButItIsnt> 
     </ThisShouldBeEscaped> 
     {% endset %} 
     {% autoescape 'html' %} 
      {{ myHtml }} 
     {% endautoescape %} 
     <!-- or --> 
     {{ myHtml|escape }} 
    </message> 
</rawXml>