1.dom方式解析
根据XML层级结构在内存中分配树形结构,把xml的标签、属性和文本都封装成对象,
缺点:文件过大时回造成内存溢出;
优点:很方便实现增删改。
2.sax方式解析:
采用时间驱动,边读边解析,从上到下,一行行解析,解析到某一个对象,返回对象名称。
优点:文件过大时不会造成内存溢出,方便实现查询操作;
缺点:不能实现增删改操作。
3.两种解析方式对比
4.xml解析器
解析xml需要使用到解析器,不同的公司和组织针对dom方式和sax方式提供了不同的解析器:
- sun公司:jaxp
- dom4j组织: dom4j <实际应用最广泛>
-jdom组织:jdom
jaxp的API:
sun公司出品,javase的一部分:
jaxp解析器在jdk的javax.xml.parsers的包里面
--四个类,分别是针对dom和sax方式解析
--DocumentBuilder:解析器类
--抽象类,不能new,可从DocumentBuilderFactory.newDocumentBuilder()方法获取;
--一个方法,可以解析xml,parse(“xml路径”);返回Document整个文档。
--得到Document后,可使用的方法;
```
--getElementByTagName(String tagName); 得到标签,返回NodeList。
--createElement(String tagName); 创建标签;
--createTextNode(String data); 创建文本;
--appendhild(Node newChild); 将节点添加到另一节点(常用来将文本添加到标签下);
--removeChld(Node oldChild); 删除节点,调用者为父节点。
--getParentNode(); 获取父节点;
```
<!!!>NodeList的两个方法:
--getLength(); 获取nodeList的长度;
--item(jndex); 根据下标来获取list中的值。
--DocumentBuildFactory:解析器工厂类
- --抽象类,不能new,newInstance()方法获取实例;