java XML(可扩展标记语言)

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文件:

 1 <?xml version="1.0" encoding="UTF-8"?>//必须放在第一行
 2 <menu>         //根标签(元素)
 3    freeFile    //没有标签包裹的,默认为文本Text
 4     <contact id="2018"> //子标签contact  属性id
 5           <name>花花</name>
 6           <age>18</age>
 7           <phone>110</phone>
 8           <email>eo@163.com</email>
 9           <qq>116</qq>
10     </contact>
11     <contact id="2017">
12          <name>小花</name>
13          <age>18</age>
14          <phone>110</phone>
15          <email>ec@163.com</email>
16          <qq>128</qq>
17     </contact>
18 <menu>

XML将数据组织成为一棵树,DOM 通过解析 XML 文档,为 XML 文档在逻辑上建立一个树模型,树的节点是一个个的对象。这样通过操作这棵树和这些对象就可以完成对 XML 文档的操作,为处理文档的所有方面提供了一个完美的概念性框架。

在此解释一下DOM,DOM是文档对象模型(Document Object Model)的缩写,DOM树,就是按照这棵树上的层次顺序,依次来解析每个标签。

 4、对XML进行DOM4j解析

DOM4J解析
           特征:
      1、JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。
      2、它使用接口和抽象基本类方法。
      3、具有性能优异、灵活性好、功能强大和极端易用的特点。
      4、是一个开放源码的文件

 未完待续。。。。。。。

posted @ 2018-08-16 16:08  echola_mendes  阅读(726)  评论(0编辑  收藏  举报