You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CDATA中保留不被解析的标记标签内容?

在CDATA中输出纯文本<b>**bold text**</b>的正确方案

要实现在支持CDATA的应用中原样显示字符串 <b>**bold text**</b>,需要解决两个核心问题:避免标签被HTML解析,同时不让转义符残留。先分析你之前尝试的问题:

  • 第一种写法:<![CDATA[&lt;b&gt;<b>bold text</b>&lt;/b&gt;]]>
    CDATA的特性是原样输出内部内容,所以里面的&lt;不会被转译为<,直接显示成&lt;b&gt;**bold text**&lt;/b&gt;,不符合需求。

  • 第二种写法:<![CDATA[<b><b>bold text</b></b>]]>
    如果你的应用在读取CDATA后,会对内容进行二次HTML解析,那么<b>标签会被渲染为加粗样式,导致仅显示加粗后的文本,丢失了标签本身。

可行解决方案

方案1:使用零宽空格打断标签结构

在<和标签名之间插入零宽空格(Unicode编码&#8203;),既不会影响视觉显示,又能避免应用将其识别为有效HTML标签:

<![CDATA[<&#8203;b>**bold text**<&#8203;/b>]]>

最终显示效果为:<b>**bold text**</b>,且标签不会被解析。

方案2:结合CDATA与实体转义(针对不二次解析CDATA的应用)

如果你的应用只会读取CDATA内容作为纯文本,不会额外解析HTML,可直接在CDATA内部使用HTML实体转义<和>,确保内容原样输出:

<![CDATA[&lt;b&gt;**bold text**&lt;/b&gt;]]>

此时应用会将&lt;转译为<,最终显示为目标字符串。

方案3:将CDATA作为代码块展示(适合参考手册场景)

如果是做CDATA参考手册,直接将整个CDATA代码块放在代码标签中,同时对代码块内的<和>进行转义,确保浏览器/应用将其作为纯代码展示:

<pre><code>&lt;![CDATA[&lt;b&gt;**bold text**&lt;/b&gt;]]&gt;</code></pre>

这样用户看到的就是完整的CDATA示例代码,包含<![CDATA[...]]>结构和内部的目标字符串。

内容的提问来源于stack exchange,提问作者Ford F150 Gaming

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 14:30:59