XML的解析

类比JavaScrip使用dom解析标记型文档,根据HTML的层级结构,在内存中分配一个树形结构,把HTML的标签,属性和文本都封装成document、element、属性、文本、Node结点等对象
XML的解析方式:dom和sax
(1)使用dom解析:

(2)sax解析:
该方式采用事件驱动,边读边解析,从上到下,一行一行的解析,解析到某一个对象,返回对象名称
使用该方式的优点:如果文件较大,不会造成内存溢出,方便实现查询操作
缺点在于不能实现增删改操作
正好与dom方式形成互补
 


如果要解析XML,需要解析器

不同的公司和组织提供了针对dom和sax方式的解析器,解析器通过api方式提供
例如:

  1. sun公司提供了针对dom和sax解析器   ——> jaxp
  2. dom4j组织提供了针对dom和sax解析器     ——> dom4j(用得最多)
  3. jdom组织提供了dom和saz解析器   ——>  jdom

查看jaxp的API

jaxp是javaSE的一部分,jaxp解析器在jdk的javax.xml.parsers包内,dom和sax解析相关的四个类
dom:

  • DocumentBuilder:解析器类

这是一个抽象类,只能通过DocumentBuilderFactory.newDocumentBuilder()类实例化对象
根据路径找到文件解析XML:public Document parse(String uri) throws SAXException, IOException,其返回document是一个interface,父类是Node,如果在document里面找不到想要的方法,就到Node里面去找

 

  • DocumentBuilderFactory:解析器工厂

这也是一个抽象类,在该类提供了一个方法:newInstance()来获取实例对象
sax:

  • SAXParser:解析器类
  • SAXParserFactory:解析器工厂

 
 

您必须 登录 才能发表评论