XML的解析:从XML文档中获得需要的数据,并可以对数据进行增删改操作.
XML解析方式:
DOM
解析:Document Object Model
SAX
解析:Simple Api for XML
DOM
解析和SAX
解析的区别:
DOM
:一次性将文档加载到内存,形成树结构进行解析.
缺点:如果文档特别大,容易造成内存溢出.
优点:对XML进行增删改的操作.
SAX
: 采用事件驱动的方式,一行一行进行解析
缺点: 不能对文档进行增删改的操作.
优点:因为每次内存中只存在一行xml
文件,不会造成内存的溢出.
SAX
解析操作步骤:
- 首先得到一个
SAXParseFactory
解析器工厂 - 通过解析器工厂得到一个解析器对象
SAXParse
- 通过解析器对象得到一个
xml
的读取器 - 通过事件驱动的方式开始读取
xml
文档,当整个xml
文件加载后会产生startElement
事件,当某个元素被加载解析就产生characters
事件.当某一个元素结束时,就产生endElement
事件.当整个xml
文件加载完成后,就产生了endDocument
事件.
针对以上两种不同的解析方式,不同的公司提供了不同的API实现.
DOM4J
:开源组织提供了一套XML
的解析API
,主要用于服务器端的XML解析.PULL
: 主要应用在手机端的XML
解析
DOM4J
的入门案例步骤:
- 步骤一:导入
jar
包dom4j-1.6.1.jar
步骤二:创建解析器
SaxReader reader = new SaxReader()
步骤三:解析文档获得代表文档的
Document
对象.Document document = reader.read("src/config.xml")
步骤四:获得跟节点
Element root = document.getRootElement();
步骤五:从根节点下查找其他的节点
elements() 获取所有子元素,返回是List集合 elements(String name) 获取所有指定名称子元素,返回的是List集合. Element.attribute(String name) 得到一个Attribute对象,通过Attribute,调用getValues()方法得到属性值 也可以简化成Element.attributeValue(String name);来得到属性值
DOM4J
与XPATH
配合使用解析XML
:
XPATH是XPath是一门在XML文档中查找信息的语言。XPath可用来在XML文档中对元素 和属性进行遍历。 dom4j支持XPath的jar包. jaxen-1.1-beta-6.jar dom4j的XPath支持的API: List document.selectNodes(String xPath); Node document.selectSingleNode(String xPath);