XML文档结构

  • XML是一个树结构

image.png

  1. 文档节点

image.png

  1. 元素节点

image.png

  1. 属性节点

image.png

  1. 文本节点

image.png

DOM解析

DOM介绍

  • DOM:Document Object Model:文档对象类型,把文档中的成员描述成一个个对象.
  • 使用Java代码操作XML 或者 使用js代码操作HTML,这里只讲Java代码操作XML部分

    DOM解析的特点

  • 加载时一次加载整个XML文件进内存,形成一颗树(Document对象)

  • 使用代码操作Document时,其实操作的是内存中的DOM树,与硬盘中的XML文件没有直接关系
  • 需要同步操作将内存中的DOM树同步至硬盘中的XML文件,仅是查询操作的话无需同步
  • 缺陷:若XML文件过大,可能造成内存溢出

    DOM解析步骤

    image.png
    1.创建解析器工厂
    2.通过解析器工厂得到解析器
    3.通过解析器得到document对象
    4.获取具体的节点内容

    小知识

  • DOM只需记住解析特点,无需记住怎么解析、获取元素,开发中基本很少用DOM

  • SUN做的DOM已被民间组织自发写的开源的dom4j取代

    Sax解析

    Sax解析介绍

  • 逐行读取,基于事件驱动

  • 优点:不占内存,速度快
  • 缺点:只能读取,不能回写

    Sax解析流程

    image.png

    小知识

  • 在开发当中也不用Sax

    dom4j解析

    dom4j介绍

  • DOM4J是dom4j.org出品的一个开源XML解析包

  • dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件
  • 越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件。