Html CDATA未正确呈现]]>;最后出现

Html CDATA未正确呈现]]>;最后出现,html,xml,cdata,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>

因此,我试图呈现从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>
但是,每当我试图显示该值时,它显示为:

    Line1
    Line 2]]>

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

因为写入HTML的内容是

<![CDATA[<br> Line1 </br> Line2]]>
Line1
Line2]>
HTML不理解这样的CDATA块,因此它将其解释为

<![CDATA[<br>   -- bogus comment
Line1           -- text
<br>            -- line break
Line2]]>        -- text
——虚假评论
第1行--文本

--断线 第2行]]>--文本
源XML是如何生成的?这是您可以控制的吗?更确切地说,HTML解析器无法识别CDATA节,当文档提供类似
text/HTML
的内容类型时,就会使用HTML解析器。当使用XHTML内容类型时,CDATA节是根据XML规范识别的(但是旧版本的IE会有问题),那么什么才是正确的结束方法呢。Line2和]]>之间有一个空格。HTML是否将]]>理解为CDATA的结尾?@Punkeshwar-CDATA块在HTML中完全有效(或者正如Jukka正确地说,HTML解析器无法识别),其中包括
]>
位。在将CDATA发送到浏览器之前,您需要找到一种方法以某种方式剥离CDATA的开始和结束。(或者根据Jukka的评论使用XHTML媒体类型)@Alohci因为我无法控制它所包含的xml标记,所以我认为在显示文本之前使用一点字符串控制更好。谢谢大家
<![CDATA[<br> Line1 </br> Line2]]>
<![CDATA[<br>   -- bogus comment
Line1           -- text
<br>            -- line break
Line2]]>        -- text