所有 XML 文档中的文本均会被解析器解析。
只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。
PCDATA
PCDATA 指的是被解析的字符数据(Parsed Character Data)。
XML 解析器通常会解析 XML 文档中所有的文本。
当某个 XML 元素被解析时,其标签之间的文本也会被解析:
<message>此文本也会被解析</message>
解析器之所以这么做是因为 XML 元素可包含其他元素,就像这个例子中,其中的 <name> 元素包含着另外的两个元素(first 和 last):
<name><first>Bill</first><last>Gates</last></name>
而解析器会把它分解为像这样的子元素:
<name>
<first>Bill</first>
<last>Gates</last>
</name>
转义字符
非法的 XML 字符必须被替换为实体引用(entity reference)。
假如您在 XML 文档中放置了一个类似 "<" 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。因此你不能这样写:
<message>if salary < 1000 then</message>
为了避免此类错误,需要把字符 "<" 替换为实体引用,就像这样:
<message>if salary < 1000 then</message>
在 XML 中有 5 个预定义的实体引用:
< |
< |
小于 |
> |
> |
大于 |
& |
& |
和号 |
' |
' |
省略号 |
" |
" |
引号 |
注释:严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。
CDATA
术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。
在 XML 元素中,"<" 和 "&" 是非法的。
"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。
"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。
某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。
CDATA 部分中的所有内容都会被解析器忽略。
CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>
在上面的例子中,解析器会忽略 CDATA 部分中的所有内容。
关于 CDATA 部分的注释:
CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。
标记 CDATA 部分结尾的 "]]>" 不能包含空格或折行。
分享到:
相关推荐
XML 基础学习笔记 XML 文档基本结构: 1. 文档说明:一个完整的 XML 文档中必须包含一个文档说明,这个说明表示该文档是一个 XML 文挡,以及遵循那个 XML 版本的规范。最简单的文档说明如下:`<?xml version=”1.0...
### XML学习笔记:深入理解DTD(Document Type Definition) 在探讨XML文档时,了解DTD(Document Type Definition)至关重要,它作为XML文档结构定义的一种标准方法,为文档提供了语法和结构的约束,确保了文档的...
### XML基础知识概述 #### XML简介 XML(eXtensible Markup Language)是一种可扩展的标记语言,由W3C(World Wide Web Consortium)联盟发展和维护。作为一种元语言,XML可以用来定义其他标记语言,其核心特点在于...
在处理特殊字符时,XML提供了实体替换和CDATA(Character Data)两种方式。实体替换适用于少量特殊字符,如`&`用于转义`&`。当需要包含大量不可解析的文本时,可以使用CDATA区,如`<![CDATA[文本内容]]>`,这样...
5. CDATA:CDATA区用于包含不能由XML解析器解析的特殊字符,如`<![CDATA[这里可以包含特殊字符]]>`。 6. 处理指令(Processing Instructions, PI):PI允许向XML处理器发送指令,格式为`<?target data?>`,如`<?xml-...
XML,全称为eXtensible Markup Language,是一种用于标记电子文件的、具有结构化的标记语言。它的主要目的是为了传输和存储数据,而不是用于显示数据,这与HTML的主要用途形成了鲜明对比。XML允许用户自定义标签,...
### XML学习笔记知识点详解 #### 一、XML技术概述及应用场景 **XML技术的主要目标**:XML(Extensible Markup Language,可扩展标记语言)是一种旨在描述具有关联性的数据的标记语言。XML允许用户自定义标签,通过...
SGML(Standard Generalized Markup Language)是XML的基础标准之一,它是所有基于文本的标记语言的基础,包括HTML、XML等。 ### XML文档结构 #### 4. XML文档声明 XML文档通常以文档声明开头,指定XML版本和编码...
- **CDATA区**:CDATA区段用于告诉XML解析器忽略其中的标记,直接将其内容视为字符数据。 ### XML的组成 - **元素**:XML的元素由开始标签、结束标签和位于两者之间的内容组成。 - **属性**:元素可以有属性,它们...
XML(eXtensible Markup Language)是一种元标记语言,设计用于传输和存储数据,而非显示数据。它允许用户自定义标记,以适应各种不同的应用场景。XML 的主要特点是其结构化和灵活性,使得数据可以在不同的系统之间...
解析XML文件,常见的方法之一是DOM(Document Object Model)解析。DOM将整个XML文件加载到内存中,形成一棵树形结构,允许开发者通过API遍历和修改XML文档。以下是一个简单的DOM解析XML文件的例子: ```java ...
### XML基础及DOM 文档对象模式和SAX 基于事件处理模式 学习笔记 #### XML概述 XML(可扩展标记语言)是一种由W3C(万维网联盟)定义的标记语言,用于存储和传输数据。与HTML相比,XML更注重于数据的描述而非展示...
1.XML 1.1. 概念:XML(eXtensible Markup Language),是一种可扩展的标记语言 1.2. 作用: XML是跨平台和跨语言的 不同的语言都支持XML解析(将XML转换为对应语言中的数据) 1. 数据交换格式(一般...
HTML/CSS/JS/JQuery/XML/JSP/Servlet/MVC 笔记 本文档主要介绍了 HTML、CSS、JS、JQuery、XML、JSP、Servlet 和 MVC 等前端和后端相关技术的笔记,涵盖了 HTML 基础标签、CSS 基础选择器、JS 基础语法、JQuery 选择...
本文将深入探讨XML的基础知识,包括文档声明、元素、属性、注释、CDATA块以及处理指令。 1. **文档声明**:XML文档的开头通常包含一个文档声明,它告诉解析器这是一个XML文档,并指明所使用的XML版本和字符编码。...
与之相对的,传统的DOM(Document Object Model)解析器需要加载整个文档到内存中,这在处理大型XML文件时会消耗大量的系统资源,可能会导致性能问题。 总体来说,C#中的XmlReader和XmlWriter类是处理基于流的XML...
Java笔记分享主要涉及了XML(Extensible Markup Language)的基础知识,包括XML的概述、应用场景、基本语法、元素、属性、注释以及转义字符和CDATA段。以下是对这些知识点的详细说明: 1. **XML概述**: XML是一种...
XML 练习题解析 本资源提供了三个 XML 练习题,涵盖了 DTD、XSD 和 CSS 等知识点。 1. 编写一个有效的 XML 文件,约束该 XML 文件的 DTD 文件 在这个练习题中,我们需要编写一个有效的 XML 文件,约束该 XML 文件...
**DOM4J学习笔记** DOM4J是一个强大的Java XML API,它提供了丰富的XML处理功能,包括文档构建、解析、修改和查询。作为一个开源项目,DOM4J在XML处理领域具有广泛的用户基础,因其简单易用和高效性能而备受青睐。...