Html 是否可以在内部使用CDATA<;预处理>;标签

Html 是否可以在内部使用CDATA<;预处理>;标签,html,xhtml,cdata,Html,Xhtml,Cdata,我想在HTML页面中显示异常跟踪 一种方法是在异常跟踪中转义HTML特殊字符,并将其转储到标记中 <pre><![CDATA[blah, blah, blah with <> and blah blah blah with & and more blah, blah]]></pre> 虽然有效,但效率极低。我认为一种方法是用CDATA包装跟踪。我试过了,但什么也没显示出来 我的问题是,这能做到吗 这是我无力的尝试 胡说八

我想在HTML页面中显示异常跟踪

一种方法是在异常跟踪中转义HTML特殊字符,并将其转储到
标记中

  <pre><![CDATA[blah, blah, blah with <>
  and blah blah blah with &
    and more blah, blah]]></pre>
虽然有效,但效率极低。我认为一种方法是用CDATA包装跟踪。我试过了,但什么也没显示出来

我的问题是,这能做到吗

这是我无力的尝试


胡说八道&
还有更多的废话,废话]]>
是的,但只有在XHTML中(理论上,我认为它应该在HTML中工作,但web浏览器处理的是标记汤而不是HTML 4.x),如果您将文档作为文本/HTML(如果您希望它与Internet Explorer一起工作,则必须这样做)


就效率而言,用它们各自的实体替换
在任何编程语言(或带有查找和替换功能的文本编辑器)中都是一个微不足道的操作,除了在带宽极其有限的情况下,它不会添加大量字节。

只有当您将页面作为XML提供时,它才会起作用(
application/xhtml+xml
);纯HTML中没有CDATA节。大多数HTML模式的浏览器只会忽略示例CDATA节

无论如何,在字符串周围抛出
..
]]>
不足以将其包装起来。如果跟踪信息中包含序列
]>
,则CDATA部分将结束,并且您将返回相同的问题。因此,您必须至少执行一次转义来处理该情况,并且如果您仍要执行转义过程唉,你不妨做一个正确的HTML转义

这就是为什么CDATA部分在很大程度上毫无意义。许多人似乎认为它可以免除他们对逃避问题的思考,但事实并非如此

无论如何,HTML转义并不是低效的。它只是几个字符串替换。任何web应用(*)都会在每个页面上执行100个HTML转义。再添加一个 — 特别是对于效率根本不重要的调试案例! — 这不是很大的负担

(*:好吧,除了PHP教程中写得很差的应用程序外,显然,这些应用程序的作者从未听说过
htmlspecialchars