XML代码的编写(⼀)
XML代码的编写(⼀)
XML概念
  Extensible Markup Language,翻译过来为可扩展标记语⾔。Xml技术是w3c组织发布的,⽬前推荐遵循的是W3C组织于2000发布的XML1.0规范。
学习XML的⽬的
  在现实⽣活中⼤量存在有关系的数据,如下图所⽰
 这样的数据如何交给计算机处理呢?,XML语⾔出现的根本⽬标在于描述上图(图1)那种在现实⽣活中经常出现的有关系的数据。
  在XML语⾔中,它允许⽤户⾃定义标签。⼀个标签⽤于描述⼀段数据;⼀个标签可分为开始标签和结束标签,在开始标签和结束标签之间,⼜可以使⽤其它标签描述其它数据,以此来实现数据关系的描述。例如:
<?xml version="1.0" encoding="UTF-8"?>
<;中国>
<;北京>
<;海淀></海淀>
<;丰台></丰台>
</北京>
<;湖南>
<;长沙></长沙>
<;岳阳></岳阳>
</湖南>
<;湖北>
<;武汉></武汉>
<;荆州></荆州>
</湖北>
</中国>
XML常见应⽤
  XML技术除⽤于保存有关系的数据之外,它还经常⽤作软件配置⽂件,以描述程序模块之间的关系。
  在⼀个软件系统中,为提⾼系统的灵活性,它所启动的模块通常由其配置⽂件决定,例如⼀个软件在
启动时,它需要启动A、B两个模块,⽽A、B这两个模块在启动时,⼜分别需要A1、A2和B1、B2模块的⽀持,为了准确描述这种关系,此时使⽤XML⽂件最为合适不过。
XML语法
 学习XML语法的⽬的就是编写XML
  ⼀个XML⽂件分为如下⼏部分内容:
⽂档声明
元素
属性
注释
CDATA区 、特殊字符
处理指令(processing instruction)
xml语法——⽂档声明
  在编写XML⽂档时,需要先使⽤⽂档声明,声明XML⽂档的类型。
  ①、最简单的语法:
    <?xml version="1.0" ?>
  ②、⽤ encoding 属性说明⽂档的字符编码:
    <?xml version="1.0" encoding="utf-8" ?>
    常见的字符编码:gbk,gb2312,utf-8,基本上我们使⽤utf-8,全世界通⽤,不会出现乱码的现象。
  ③、⽤ standalone 属性说明⽂档是否独⽴:
    <?xml version="1.0" encoding="utf-8" standalone="no" ?>
    standalone有两个属性,yes和no。如果是yes,则表⽰这个XML⽂档时独⽴的,不能引⽤外部的DTD规范⽂件;如果是no,则该XML⽂档不是独⽴的,表⽰可以⽤外部的DTD规范⽂档。
  最简单的声明语法: <?xml version="1.0" ?>
  例如:
<?xml version="1.0"?>
<softCompany>
<company>MicroSoft</company>
<company>google</company>
<company>Apple</company>
</softCompany>
 浏览器解析结果如下:
  ⽤encoding属性说明⽂档的字符编码:<?xml version="1.0" encoding="GB2312" ?>
  当XML⽂件中有中⽂时,必须使⽤encoding属性指明⽂档的字符编码,例如:encoding="GB2312"或者encoding="utf-8",并且在保存⽂件时,也要以相应的⽂件编码来保存,否则
在使⽤浏览器解析XML⽂件时,就会出现解析错误的情况。
  例如:
xml标签大全<?xml version="1.0"?>
<softCompany>
<company>MicroSoft</company>
<company>google</company>
<company>Apple</company>
<company>百度</company>
</softCompany>
 这个XML⽂件中没有使⽤encoding属性来指明⽂档的字符编码,但⽂档⾥⾯有“百度”这样的中⽂字符,在使⽤IE浏览器解析该XML⽂件时,IE就不知道该使⽤什么编码去解析该⽂件,就⽆法解析了,出现的错误如下图(图-1)所⽰:
                          图-1
  要想正确解析该XML⽂档,就可以使⽤encoding属性指明该⽂档的字符编码。
  例如:
<?xml version="1.0" encoding="GB2312"?>
<softCompany>
<company>MicroSoft</company>
<company>google</company>
<company>Apple</company>
<company>百度</company>
</softCompany>
 此时再次使⽤IE浏览器来解析该XML⽂件,就可以正常解析出⾥⾯的中⽂字符了,如下图(图-2)所⽰:
                图-2
编写XML⽂件常遇到的⼀个问题
  XML⽂件⼀般使⽤国际化通⽤的编码“utf-8”,所以平时看到的XML⽂件的头部都会有这样的代码:
<?xml version="1.0" encoding="utf-8"?>
  如果我们使⽤“记事本”或者“EditPlus”等⽂本编辑⼯具编写XML⽂件时,例如使⽤“EditPlus”编写如下的XML⽂件:
<?xml version="1.0" encoding="utf-8"?>
<CharacterEncoding>
<;中国>
<encoding>GB2312</encoding>
<encoding>GBK</encoding>
</中国>
<⽇本>
<encoding>JIS</encoding>
</⽇本>
</CharacterEncoding>
 当我们在保存⽂件时,⽂件的编码默认是以“ANSI”来保存的,如下图(图-3)所⽰:
                    图-3
  我们编写XML⽂件时,使⽤encoding="utf-8"来指明了⽂档的字符编码,但是在保存的时候却使⽤了“ANSI”编码来保存⽂件,由于我们在XML⽂件中使⽤encoding="utf-8"来指明了⽂档的字符编码,所以当浏览器解析该XML⽂件时,就是使⽤“utf-8”编码来解析,解析结果如下图(图-4)所⽰:
                   图-4
  可以看到,浏览器解析失败了,这是为什么呢?我们明明指定了⽂档的字符编码是“UTF-8”了呀,为什么⾥⾯的中⽂解析不出来呢?这⾥不得不说说ANSI编码到底代表的是神马意思了。
  不同的国家和地区制定了不同的标准,由此产⽣了 GB2312, BIG5, JIS 等各⾃的编码标准。这些使⽤ 2 个字节来代表⼀个字符的各种汉字延伸编码⽅式,称为 ANSI 编码。在简体中⽂系统下,ANSI 编码代表GB2312 编码,在⽇⽂操作系统下,ANSI 编码代表JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,⽆法将属于两种语⾔的⽂字,存储在同⼀段ANSI 编码的⽂本中。
  下⾯分析⼀下为什么IE浏览器X⽆法解析ML⽂件的原因:如下图(图-5)所⽰:
                          图-5
  所以千万要记住,使⽤“记事本”或者“EditPlus”等⽂本编辑⼯具编写XML⽂件时⼀定要以XML⽂件的encoding属性指明的编码来保存⽂件,这样才能保证浏览器解析XML⽂件时可以正常解析。
  上述的问题将l⽂件再以“UTF-8”编码保存⼀次就可以正常解析出l
                              图-6
  浏览器的解析结果如下图(图-7)所⽰:
                    图-7

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。