一、XML

1. XML简介

  • xml是可拓展的标记性语言。
  • 用来保存数据,而且这些数据具有自我描述性。
  • 可以做为项目或者模块的配置文件。
  • 还可以做为网络传输数据的格式(现在JSON为主)。

2. XML语法

2.1 文档声明

2.2 XML注释

  • HTML和XML注释一样。

2.3 元素(标签)

  • XML元素指的是从(且包括)标签直到结束标签的部分。
  • 元素可包含其他元素,文本或两者的混合物。元素也可以拥有属性。
  • XML的命名规则:
    • 名称可以含字母、数字、其他字符。
    • 名称不能以数字或标点符号开始。
    • 名称不能以字符xml(XML等)开始(实际上是可以的)。
    • 名称不能包含空格。
  • XML中的元素也分成单标签和双标签。
  • XML对大小写敏感。
  • 所有XML元素都须有关闭标签。
  • XML文档必须有唯一的根元素。
  • XML中的特殊字和HTML中一样。

2.4 属性

  • 属性可以提供标签的额外信息。
  • 每个属性的值必须用引号括起来,单引号双引号都可以。

2.5 文本区域(CDATA区)

3. XML解析技术

  • 不管是html文件还是xml文件它们都是标记型文档,都可以使用w3c组织制定的Dom技术来解析。

  • 早期JDK为我们提供了两种xml解析技术:DOM和Sax简介(已经过时,但我们需要知道这两种技术)。
  • SAX解析,它跟W3C制定的解析不太一样。它是以类似事件机制通过回调告诉用户当前正在解析的内容。 它是一行一行的读取xml文件进行解析的。不会创建大量的Dom对象。所以它在解析xml的时候,在内存的使用上和性能上。都优于Dom解析。
  • 第三方的解析:
    • jdom在Dom基础上进行了封装。
    • dom4j又对jdom进行了封装。

4. dom4j解析技术

  • 我们需要使用dom4j就需要到dom4j官网下载dom4j的jar包。

  • dom4j目录介绍:

    • docs目录:是文档目录,第三方类的学习文档,里面的index.html文件即为Dom4j的文档。
    • lib目录:为dom4j需要依赖其他第三方类库。
    • src目录:是第三方类库的源码目录。

5. dom4j编程步骤

  1. 先加载xml文件创建Document对象。
  2. 通过Document对象拿到根元素对象。
  3. 通过根元素.elelemts;可以返回一个集合,这个集合里放着所有指定的标签名的元素对象。
  4. 找到修改的元素,进行相应的操作。
  5. 保存到硬盘上。

5.1 获取Document对象

  • 创建一个lib目录,并添加dom4j的jar包。并添加到类路径。
  • 需要解析的books.xml文件内容。
  • 解析获取Document对象的代码。

5.2 遍历标签且获取所有标签中的内容

  1. 通过创建SAXReader对象,来读取xml文件,获取Document对象。
  2. 通过Document对象。拿到XML的根元素对象。
  3. 通过根元素对象。获取所有的book标签对象。
  4. 遍历每个book标签对象。然后获取到book标签对象内的每一个元素,再通过getText()方法拿到起始标签和结 束标签之间的文本内容。

  • 运行结果如下。