IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

XML/RSS的CDATA区段

芽雨快跑 2010-04-22 11:06:27 累计浏览 3,132 次
本机暂存

    之前做RSS输出的程序时,用"<![CDATA[内容]]>"解决了description节点文章内容的老断点的问题。当时不甚其解,也没花时间弄明白它的原理。

    今天继续学习了一下XML的基础格式,豁然开朗。

    每种数据格式,如果要被广泛推广,被多种解析器能理解,必需要有其特定的格式,就如语法一般。

    虽然XML 和 HTML 为不同的目的而设计:

以下是引用片段:

XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息。

    但在语法上,两者有相似之处,HTML的标签都是放在“<”和“>”之间,XML也是如此。如在 XML 文档中放置了一个类似 "<" 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。

    而一般文章的内容可能包含意想不到的特殊字符,尤其是技术博客。那么为了避免此类错误,XML要求我们把字符 "<" 替换为实体引用,如:

以下是代码片段:
<message>if salary &lt; 1000 then</message>


    而不是

以下是代码片段:
<message>if salary < 1000 then</message>

    那什么是实体引用呢,如下:

以下是引用片段:
在 XML 中有 5 个预定义的实体引用:
&lt; < 小于
&gt; > 大于
&amp; & 和号
&apos; ’ 单引号
&quot; " 双引号

    注释:严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。

    所以在文章内容输出的时候,做一次htmlspecialchars处理是很有必要的。

    除了使用htmlspecialchars处理以外,XML还为我们提供了一个特殊的标签:CDATA 区段

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. XML和JSON (累计阅读 7,727)
  2. AWStats是一个基于Perl的WEB日志分析工具。 (累计阅读 7,176)
  3. 使用SoapHeader实现Soap请求验证 (累计阅读 6,061)
  4. 国内团购网前端严重安全漏洞– 以满座网为案例分析 (累计阅读 5,874)
  5. 个人订阅的10佳博客与相关介绍 (累计阅读 4,862)
  6. xml转数组的方法 (累计阅读 4,669)
  7. 前端模板引擎 (累计阅读 4,569)
  8. 信XML,得自信 (累计阅读 4,544)
  9. 用于前端的模板引擎 (累计阅读 4,281)
  10. 如何将AIR应用打包成exe (累计阅读 4,144)