[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
Web开发
> 详细
XML入门教程:分析XM
时间:
2016-02-05 18:05:17
阅读:
148
评论:
0
收藏:
0
[点我收藏+]
分析XML文档可通过程序来做,分析器有两大类,一种是事件驱动的,一种是基于树模型的。
分析XML文档可通过程序来做,分析器有两大类,一种是事件驱动的,一种是基于树模型的。
使用事件驱动的分析器时,每遇到一个元素就会触发一个事件,由事件处理器进行处理。事件分析器按顺序读取XML文档,而不把整个文档读入内存,所以处理速度很快。但缺点是由于要从头到尾读取XML文档,因此无法在XML文档中移动位置。事件驱动分析器适合处理其它地方使用的XML数据,如转换成HTML文档或从文件中读取数据并插入数据库中。它的优点有:
文件搜索,从XML文档中搜索需要的标志或数据;
格式转换,如转换成HTML。任何需将原始XML转换成另一种格式的工作都最好使用事件驱动分析器来完成,因为它可动态将信息转换成新格式。
少量修改,你可用事件驱动分析器读取和重新生成XML。在分析过程中,可以改变少量的单语、字符数据内容或重新构造XML。事件驱动分析器特别适合整理和重新格式化XML文档。
简单验证,由于整个文档不在内存中,所以无法进行完整验证,但可检查拼写错误和一般良构XML文档之类的简单问题;
建立内部结构,可以使用事件驱动分析器建立XML文档的复杂内部表示,如基于树的接口使用的树式结构。
事件驱动分析器不能在XML文档间交叉引用文档内容,但它使用简单,速度快。
基于树的分析器把整个XML文档读入内存,并生成树状结构。分析器可随机访问树中的任意节点,并能修改树结构和内容。
1.分析器工具
现有的分析器种类有上百种,但常用的是两个标准的工具库,一个是XML简单API(SAX,Simple API for XML)和文档对象模型(DOC,Document Object Model)。SAX是事件驱动分析器的标准,而DOM是基于树的分析器标准。另外,Expat虽然不是标准,但它是脚本语言中处理XML时最常用的分析器。Expat由James Clark编写,是事件驱动分析器。
本文由脚本之家(http://www.jb51.net)整理发布!转载请注明出处,谢谢!
2.Unicode
计算机并不能正真理解文本内容,它无法识别诸如a,b,c这类的字母,更不用说中文了。计算机所能理解的只有数字,如60,80等。字符集(character set)规定了字母到数字的映射关系,如65代表大写字母A。65称为码点(code point),字符编码(character encoding)决定码点如何用字节表示。是用多了节还是单字节,高字节位表示什么,低字节位表示什么。
不同国家使用不同的语言,不同程序使用不同的编码规范,在进行世界范围内的数据交换就要统一表示数据的字符编码规范。传统的ASCII字符集只定义了127个字符,其中前31个是控制符。127位之后的字符随平台不同而不同。大多数平台只能表示前127位,单字节(8位),使得字符集中最多只能提供256个字符。这些标准字符称为罗马或拉丁字符集,用ASCII来表示中文、日文是远远不够的。
为了解决字符集问题,出现了Unicode字符集。它可用多字节格式编码字符,目前标准允许2字节字符,支持65536个不同字符。标准的Unicode字符集为Latin-1(或ISO-8859-1)。有关Unicode的介绍可访问Unicode的官方网站:http://www.unicode.org
Unicode字符集为字符分配码点,即编号。这些编号可以用多种模式编码,如UCS-2、UCS-4、UTF-8、UTF-16。
UCS-2,也叫ISO-10646-UCS-2。每个字符用一个0~65535之间的两个字节的无符号整数表示。如A的Unicode码点为65,用两个字节00和41(十六进制)表示。B的Unicode码点为66,用两个字节00和42表示。UCS-2有两种形式:高字节(#x0041)在前和低字节(#x4100)在前。为区发高低位不同表示形式,采用UCS-2编码文档通常以Unicode字符#xFEFF(零宽度无间断空格)开头,一般称为字节顺序标记(byte order mark)。这个字符是不可见的。如果两个字节交换位置,得到的字符#xFFFE实际是不存在的。因此中通过查看UCS-2文档的前两个字符是#xFEFF还是#xFFFE,就可确定该文档是否是高字节在前。UCS-2的缺点:如果文本字符主要是拉丁文,由于采用两个字节,字符集编码是单字节字符编码的两倍;UCS-2不能与ASCII向前或向后兼容,用于单字节字符集的工具常常不适用于处理UCS-2编码文件。
UTF-8是一种可这长度的Unicode编码。0~127为ASCII码字符集,与ASCII编码完全兼容,每个字符采用一个字节编码。UTF-8用两个字节表示128~2047,该范围覆盖了最常见的非表意字母。其余的字符,主要来自汉语、日语和韩语,每个都用3个字节表示。如果Unicode的码点超过65535个字符,那么这些字符就会用4个字节编码。对于以拉丁文为主的文件,使用UTF-8比UCS-2可减少一半的文件大小。对于汉语、日语和韩语的文件,其大小会增加百分之五十。对于其它语言,文件大小相差不大。UTF-8是最常用的Unicode编码方式。
在Unicode流行以前,出现了一系列处理特定语言的单字节字符集,ISO将14种这样的字符集标准化成ISO 8859标准,分别是ISO-8859-1~14。ISO-8859-15是ISO-8859-1的修订版本。这些字符集统称ISO字符集。
Cp1252是依赖于Windows平台的一种编码,是Windows的缺省字符集。该种编码不支持跨平台特性,尽量不要使用。
MacRoman是Mac OS使用的一种非标准、单字节编码。在非Mac平台下使用也会有问题,尽量不要使用。
本文由脚本之家(http://www.jb51.net)整理发布!转载请注明出处,谢谢!
在XML文档中,如果需输入编辑器不支持的字符,我们可用字符引用的方式,以十进制或十六进制给出它所代表的Unicode字符编号,如њ(十进制)或者њ(十六进制)。字符引用可用于元素内容、属性和注释,不能用于元素名和属性名、处理指令或XML关键字。如果有一些字符需经常使用,则我们可为这些字符定义实体,这样,在文档中就可方便地引用该实体了。专门定义字符实体的DTD我们可独立出来,形成以.ent为后缀的外部DTD。在需要时使用外部参数实体引用将这些定义引入文档的DTD中。
XHTML 1.0 DTD包含有三个有用的字符引用实体可在文档中使用。
Latin-1字符,http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent
ISO-8859-1中自160以上的非ASCII码字符。
特殊字符,http://www.w3.org/TR/xhtml/DTD/xhtml-special.ent
ISO-8859-2中不在Latin-1中的字母。
标点符号,http://www.w3.org/TR/xhtml-symbol.ent
希腊字母表(不包含带重音的字符)和各种标点符号、数学运算符及其他数学中常用的符号。
在XML文档中可以使用xml:lang属性规定元素内容采用的语言。这样就可在一篇文档中同时使用多种语言,这是XML跨平台和跨语言的重要特性之一。如:xml:lang="CN-CHN"。语言代码是一个两个字母的语言代码,语言代码后还可跟一个子代码,语言代码可在这里找到http://ftp.ics.uci.edu/pub/ietf/http/related/iso3166.txt。下面是xml:lang属性声明的示例:
<!ELEMENT test (#PCDATA)> <!ATTLIST test xml:lang NMTOKEN #IMPLIED>
由于所有语言代码都是有效的XML名称标记,所以使用NMTOKEN类型。
XML入门教程:分析XM
原文:http://www.jb51.net/xml/12457.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!