【问题标题】:Alternative to CDATA for HTMLHTML 的 CDATA 替代方案
【发布时间】:2012-04-09 20:43:33
【问题描述】:

我想在 HTML 页面中显示类似 & 的字符串,但它呈现为 &。 是否有可能告诉浏览器显示文本而不进行处理,例如 XML 中的CDATA

附言。在服务器端,我使用的是 Java。

【问题讨论】:

    标签: java html xml cdata


    【解决方案1】:

    不,这些字符是专门为这样显示而设计的。您可以改为发送&,它将如您所愿显示。根据您使用的服务器端语言,可能会有一个 HTMLEncode 函数为您执行此操作。

    PS - PRE & CODE 不适用于 HTML 符号。

    【讨论】:

    • 其实我发送的是& 但浏览器显示为&
    • 对不起,这个网站编码了!让我把它拼出来,这样你就可以看到: & a m p ;一个 m p ;删除空格,然后你就有了我想要你看到的内容:)
    • +1 指出需要进行 HTML 编码,但 PRE & CODE do not work for html symbols. 是什么意思?至少在撰写本文时,最近的浏览器确实允许,例如,<pre><code> 元素中的文字 &,而且奇怪的是,& 转换为文字 &
    • 我的意思是您发现的,您可能认为 PRE/CODE 不会将 & 转换为 &,但他们会。
    【解决方案2】:

    通常,您应该按照 Dale Burrell 的回答中的建议进行操作。它只需要一些额外的操作,并且可能需要关心。如果需要显示&,那么只需要关心&,其余的正常输入即可。

    但是有一个 密码,xmp tag。它在浏览器中得到很好的支持,尽管它可能永远不会(回到)规范。此外,除了按字面呈现所有内容外,它还呈现为具有垂直边距和等宽字体的块。这可以在 CSS 中处理,但有一些常见的警告,例如

    <style>
    body, xmp { font-family: Calibri, sans-serif; }
    xmp { display: inline; }
    </style>
    I want to display strings like <xmp>&amp;</xmp> in an HTML.   
    

    通常使用xmp 没有什么意义,但是当HTML 标记应该按原样显示时,它可以很方便地处理大量数据。然后你甚至可能想要默认渲染,而不需要上面的样式表。

    【讨论】:

    • 秘方!我喜欢它。我不会梦想使用它,但我喜欢它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 2012-01-21
    相关资源
    最近更新 更多