0

所以我试图渲染一些从 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}

通常它应该显示为:

 Line1
 Line 2

但是,每当我尝试显示值时,它都会显示为:

    Line1
    Line 2]]>

不知道为什么我最后会得到 ]]>,如果我删除它,xml 可以正常读取,并且消息也可以正确显示,但困扰我的是原因。

4

1 回答 1

1

因为写入 HTML 的内容是

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

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

<![CDATA[<br>   -- bogus comment
Line1           -- text
<br>            -- line break
Line2]]>        -- text
于 2013-09-16T09:13:36.970 回答