Html 是否可以在内部使用CDATA<;预处理>;标签
我想在HTML页面中显示异常跟踪 一种方法是在异常跟踪中转义HTML特殊字符,并将其转储到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包装跟踪。我试过了,但什么也没显示出来 我的问题是,这能做到吗 这是我无力的尝试 胡说八
标记中
<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
)