CDATA无法正确呈现]]>出现在最后

时间:2013-09-16 08:46:10

标签: html xml cdata

所以我试图渲染一些从xml服务返回的CDATA。 返回的数据格式为:

   <Characteristic>
              <name>What to do what to say</ns32:name>
              <value>&lt;![CDATA[&lt;br&gt; Line1 &lt;/br&gt; Line2]]&gt;</value>
           <orderCharacteristic>

然后我使用以下代码在ftl文件中显示此值:

<#if Characteristic.name="What to do what to say">
    <#assign whatToSay=orderCharacteristic.value>
</#if>
${whatToSay}

Noramlly它应该显示为:

 Line1
 Line 2

但是,无论何时我尝试显示该值,它都显示为:

    Line1
    Line 2]]>

不确定我为什么会得到]]&gt;最后,如果我删除它,xml被正确读取,并且消息也正确显示,但是什么是困扰我的原因。

1 个答案:

答案 0 :(得分:1)

因为写入HTML的内容是

<![CDATA[<br> Line1 </br> Line2]]>

HTML不理解CDATA这样的块,因此它将其解释为

<![CDATA[<br>   -- bogus comment
Line1           -- text
<br>            -- line break
Line2]]>        -- text