XML
是EXtensible Markup Language的缩写,它是一种类似于HTML的标记语言,称为可扩展标记语言,传输数据而不是显示数据,可以自定义标签,具有自我描述性是一种通用的数据交换格式,可以使数据在各种应用程序之间轻松地实现数据的交换。
1、XML语言和HTML语言在格式有点相似,HTML与XML比较:
- HTML中的标记是用来显示数据的,而XML中的标记用来描述数据的性质和结构。
- HTML是不区分大小写的,而XML是严格区分大小写的。
- HTML可以有多个根元素,而格式良好的XML有且只能有一个根元素。
- HTML中,属性值的引号是可用可不用的,而XML中,属性值必须放在引号中。
- HTML中,空格是自动过滤的,而XML中,空格则不会自动删除。
- HTML中的标记是预定义的,而XML中的标记是可以随便定义的,并且可扩展。
注意:XML不是HTML的升级,也不是HTML的替代产品,它们的应用领域和范围完全不同。
2、XML命名规则
- 名称可以包含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字母 xml(或者 XML、Xml 等等)开始
- 名称不能包含空格
- 可使用任何名称,没有保留的字词。
3、XML解析
XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。
XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。
XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。 |
其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。
四种解析方式简单比较: DOM4J性能最好,如果不考虑移植性,可以选择DOM4J,目前许多开源项目中大量采用DOM4J。 JDOM和DOM在性能测试时表现不佳,在测试10M文档时内存溢出。在小文档情况下还值得考虑使用DOM和JDOM。SAX表现较好,这要依赖于它特定的解析方式-事件驱动。一个SAX检测即将到来的XML流,但并没有载入到内存(当然当XML流被读入时,会有部分文档暂时隐藏在内存中)。 |
一个简单的XML文件:
<?xml version="1.0" encoding="UTF-8"?>//必须放在第一行
<menu> //根标签(元素)
freeFile //没有标签包裹的,默认为文本Text
<contact id="2018"> //子标签contact 属性id
<name>花花</name>
<age>18</age>
<phone>110</phone>
<email>eo@163.com</email>
<qq>116</qq>
</contact>
<contact id="2017">
<name>小花</name>
<age>18</age>
<phone>110</phone>
<email>ec@163.com</email>
<qq>128</qq>
</contact>
<menu>
XML将数据组织成为一棵树,DOM 通过解析 XML 文档,为 XML 文档在逻辑上建立一个树模型,树的节点是一个个的对象。这样通过操作这棵树和这些对象就可以完成对 XML 文档的操作,为处理文档的所有方面提供了一个完美的概念性框架。
在此解释一下DOM,DOM是文档对象模型(Document Object Model)的缩写,DOM树,就是按照这棵树上的层次顺序,依次来解析每个标签。
4、对XML进行DOM4j解析
DOM4J解析
特征:
1、JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。
2、它使用接口和抽象基本类方法。
3、具有性能优异、灵活性好、功能强大和极端易用的特点。
4、是一个开放源码的文件
未完待续。。。。。。。