`
nomadyyj
  • 浏览: 53683 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

XML中的CDATA

阅读更多
所有 XML 文档中的文本均会被解析器解析。
只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。
Parsed DataXML 解析器通常会解析 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 &lt; 1000 then</message>
在 XML 中有 5 个预定义的实体引用:&lt;<小于&gt;>大于&amp;&和号&apos;'省略号&quot;"引号注释:严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。
CDATACDATA 内部的所有东西都会被解析器忽略。
假如文本中包含了大量的 "<" 和 "&" 字符 - 就像编程代码中经常出现的情况一样 - 那么这个 XML 元素就可以被定义为一个 CDATA 部分。
CDATA 区段开始于 "<![CDATA[",结束于 "]]>":
<script><![CDATA[function matchwo(a,b){if (a < b && a < 0)   {   return 1   }else   {   return 0   }}]]></script>
在上面的例子中,在 CDATA 区段中的所有东西都会被解析器忽略。
关于 CDATA 区段的注释:CDATA 区段不能包含字符串 "]]>",所以,CDATA 区段的嵌套是不被允许的。
同时也需要确保在 "]]>" 字符串中没有空格或折行。
分享到:
评论

相关推荐

    JAVA对象转换成XML(CDATA)

    在Java编程中,将对象转换成XML是一种常见的数据序列化方式,这有助于数据交换和存储。当遇到包含特殊字符如 "和 "&" 的文本时,XML解析器可能会产生错误,因为这些字符在XML语法中有特定含义。为了解决这个问题,...

    asp.net自带类读写xml中的CDATA

    ASP.NET 3.5及以上版本提供了内置的序列化类,使得操作XML中的CDATA变得简单,同时也支持JSON数据格式的读写。 本文将详细介绍如何利用ASP.NET的内置类来读写XML中的CDATA,以及如何将这些数据转换为JSON格式。 ##...

    XML:标签CDATA用法

    ### XML中的CDATA用法详解 #### 一、CDATA的基本概念 **CDATA**(Character Data)是一种特殊的文本区域,它被XML解析器视为纯文本数据,并不会对其进行解析或处理。这意味着在CDATA段落内的任何XML标签或者实体引用...

    kettle 解析xml xml文档,配合kettle 解析xml stax方法,完整解析案例使用

    与上一个版本一起使用可以可以起到提高效率的目的。本人解析xml的真实文档

    .NET更新Xml中CDATA内容的方法实例

    [CDATA[&lt;h2&gt;.NET 开发]]&gt; &lt;siteurl&gt;//www.jb51.net&lt;/siteurl&gt;&lt;/net&gt;我们可以采用下面的方法修改 CDATA 节点的内容。 C# 代码 代码如下:System.Xml.XmlDocument d = new System.Xml.XmlDocument();d.Load(Server....

    包含CDATA的 字符串转换成xml

    本文档包含了一个完整的实例,可以实现含有CDATA 的字符串转换成xml

    C#读取XML的CDATA节点内容实例详解

    在本篇文章中,我们将详细介绍如何使用C#语言读取XML文件中的CDATA节点内容。CDATA节点是一种特殊的XML节点,用于存储不需要被XML解析器解析的文本数据。在实际开发中,我们经常需要读取CDATA节点中的数据,以便进行...

    tinyxml2解析和创建xml样例

    在本文中,我们将深入探讨如何使用TinyXML2来解析和创建XML文件,特别是涉及到CDATA区段和元素的多属性处理。 首先,让我们了解XML的基本概念。XML(Extensible Markup Language)是一种用于存储和传输结构化数据的...

    xml转javaBean,javaBean转xml,xml标签大小写问题,以及对xml特殊符号的处理

    总结,XML与JavaBean之间的转换是Java开发中的常见操作,理解XML的大小写规则、特殊符号处理和CDATA的使用对于编写健壮的XML处理代码至关重要。掌握这些知识可以帮助开发者更有效地在XML和Java对象之间进行数据交换...

    超全面javaweb第4天- 10 xml的CDATA区

    超全面javaweb第4天-_10_xml的CDATA区

    php生成xml时添加CDATA标签的方法

    CDATA部分会告诉XML解析器忽略内部文本中的特殊字符,如", "&gt;", "&"等,它们会被当作普通字符处理。 PHP提供了DOMDocument类用于操作XML文件,包括创建、编辑和输出。DOMDocument类中的createCDATASection方法可以...

    如何处理xml中的CDATA脚本

    本文将详细探讨如何在C#环境中处理XML中的CDATA脚本。 首先,理解CDATA的语法是至关重要的。CDATA区段通常以`&lt;![CDATA[`开始,以`]]&gt;`结束,其中间的任何字符都不会被XML解析器解析为XML元素或实体。例如: ```xml...

    php操作xml入门之cdata区段

    XML文档中使用CDATA区段的方式非常简单,它由“&lt;![CDATA[”开始,并以“]]&gt;”结束。CDATA区段内的内容将不会被XML解析器进行解析。 在本教程中,我们将看到一个具体的XML文档示例。这个文档定义了一个学生的个人...

    XML CDATA是什么?

    XML CDATA部分是XML文档中的一个特殊区域,它允许您在其中包含任意文本,包括那些在XML文档中通常具有特殊意义的字符,如小于号(")和和号("&")等。XML解析器在处理XML文档时会忽略CDATA部分内的所有内容,因此,您...

    android SaxParser 解析 CDATA

    本篇将详细介绍如何在Android中使用SAXParser来解析包含CDATA(Character Data)的XML数据。 首先,了解CDATA的概念。在XML中,CDATA段是用来标记一段文本,告诉解析器这段文本不应被解析为XML元素。它的语法是`&lt;!...

    区分CDATA和PCDATA

    在深入探讨CDATA与PCDATA的区别之前,我们先来理解它们在XML(可扩展标记语言)中的基本概念。XML是一种用于标记数据的语言,它允许自定义标签,因此在各种应用程序之间交换数据时非常灵活。然而,XML对特殊字符的...

    第135讲phpxml编程②cdata实体字符处理指令dtd快速入门编程校验xml.pdf

    在本讲中,我们将深入探讨PHP与XML的结合使用,特别是关于CDATA、实体字符处理以及DTD(Document Type Definition)的快速入门。XML是一种强大的数据交换格式,它允许我们以结构化的方式存储和传输数据。而PHP作为一...

Global site tag (gtag.js) - Google Analytics