【问题标题】:CDATA not working for C++ code inside a <pre> tagCDATA 不适用于 <pre> 标记内的 C++ 代码
【发布时间】:2011-08-23 13:14:10
【问题描述】:

我在 pre 标记内输出一些 C++ 时遇到问题。

我拥有的 XHTML 代码是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
   <head>   
      <meta http-equiv="Content-Type" content="application/xhtml+xml" />
   </head>
   <body>
   <pre><![CDATA[
   #include <cstdio> 

   int x = 1;
   ]]></pre>
   </body>
</html>

但是当我尝试查看网页时,我只看到了

int x = 1;
]]>

而不是

#include <cstdio> 

int x = 1;

如我所愿。

我对 CDATA 的行为有什么不明白的地方?

【问题讨论】:

    标签: html xml cdata pre


    【解决方案1】:

    CDATA 不是 HTML 结构;它是一个 XML(和 XHTML)结构。

    【讨论】:

    • 我应该在网页中使用&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;以外的其他内容吗?浏览器能否理解我要使用的 XHTML 代码?
    • 让我们首先整理一件事:您是在编写 HTML 还是 XHTML?它们是一回事。
    • 老实说,我从来没有真正问过自己这个问题。通过查看两者之间的差异,代码尊重 XHTML 约束(标签正确嵌套、封闭、小写……)
    • 这并不意味着它不是 HTML。这里的关键问题是,如果您正在编写 XHTML(并将您的页面作为 application/xhtml+xml 发送,您应该始终使用 XHTML),您可以使用 CDATA 构造。 HTML 中没有这样的功能,因此您必须使用实体。
    • 我已经编辑了这个问题,它将是一个完整的例子,application/xhtml+xml 仍然不能像我想要的那样工作。很抱歉混淆了 HTML 和 XHTML。
    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2013-12-03
    • 2011-10-17
    相关资源
    最近更新 更多