解析方式(DOM,SAX,JDOM,DOM4J,STAX)

一,DOM(Document Object Model)方式解析:文档对象模型,官方推荐

   DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取和操作文档的任意部分,是W3C的官方标准








DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();        
DocumentBuilder db = bdf.newDocumentBuilder();
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(xml文件);
Document doc = bd.parse(is);


       Document:XML文档对象,由解析器获取

       NodeList:节点数组

       Node:节点(包括element、#text)

       Element:元素,可用于获取属性参数

 二,SAX(Simple API for XML)解析

  流模型中的"推"模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,事件推给事件处理器,通过回调方法完成解析工作,解析XML文档的逻辑需要应用程序完成



















SAXParserFactory saxf = SAXParserFactory.newInstance();     
SAXParser sax = saxf.newSAXParser();




三,JDOM(Java-based Document Object Model)解析

  Java特定的文档对象模型。自身不包含解析器,使用SAX







四,DOM4j(Document Object Model for Java)解析  常用

  简单易用,采用Java集合框架,并完全支持DOM、SAX和JAXP








五,STAX(Streaming API for XML)解析

  流模型中的拉模型分析方式。提供基于指针和基于迭代器两种方式的支持,JDK1.6新特性