day05_dom4j

来源:互联网 发布:windows 程序返回值 编辑:程序博客网 时间:2024/06/14 17:05

XML

1.1 什么是解析xml?

系统最终会从xml中读取数据.读取的过程就是解析.CRUD => 增删改查 => create read update delete => 解析指的就是读.

1.2什么是解析器?

就是用来解析xml的类.过滤器,拦截器,监听器....都是具备相应功能的java类而已.

1.3两个常见的解析xml的思路!.

思想:

DOM:将文档中所有内容都封装成对象.读取时,将所有对象都加载到内存中.在内存中创建一颗dom树(记录对象间的关系).    优点: 方便的进行增删改查.    缺点: 会非常消耗内存.sax:事件驱动的.与pull解析类似.把xml文档的 读取过程,划分出5类事件.我们只要提供遇到每类事件做什么的锦囊即可.    优点:内存占用小.    缺点: 不能进行增删改的操作.DOM解析是由w3c推荐提出的.Sax解析是由民间提出的.

2.DOM:

把所有内容封装成了5类对象.

        document        Element        Attribute        Text        Commons

共同的父类

        NOde的属性:            自身属性:                nodeType                nodeName                nodeValue

导航属性

                找子节点的:firstChild lastChild childNodes                找父节点的:parentNode                找兄弟节点:nextSibling previousSibling

获得Element的方式

        getElementById           ==> Document        getELementsByTagName     ==> Document/Element        getELementsByClassName   ==> Document/Element        getElementsByName        ==> Document

对于增删改的操作:

        创建一个元素: document.createElement        添加一个元素: element.appendChild ,element.insertBefore        替换一个元素: element.replaceChild        删除一个元素: element.removeChild

3.JAXP

JAXP ==> JDK提供的 ==> java api for xml parser
思想在java中的体现是接口.
我们要开发的话需要接口的实现类.
由各大解析器厂商提供实现接口的类.

A a  = new AImpl(); // Aimpl2;A a  = new AImpl2();

上面的切换实现类的方式,需要该源代码,太过原始
A a = JAXP.getXXX();==> 配置文件 ==> 我们通过修改配置文件就可以实现切换实现类.

//反射.泛型.

4.DOM4J

4.1简介

Dom for java
DOM4J

DOM4J 整合两种思想.(SAX DOM)的思想.
使用sax的思想做读取xml.

又参照dom的思想,也在内存中创建了一颗对象关系树. 我们在学习的时候,参照之前我们学习的dom树即可.

4.2 用dom4j如何避免乱码?

    //要保证写入的编码和读取的编码一致.        1.写入的编码如何控制?            XMLWriter writer = new XMLWriter(new PrintWriter("src/students_copy.xml","UTF-8"),format);        2.读取的编码如何控制?            <?xml version="1.0" encoding="GBK"?>,其中encoding属性决定了读取时采用什么编码,而encoding属性由format.setEncoding("GBK");控制.    //其实要保证不乱码上面的方法太弱了!        方法: 使用字节流绝对不会出现乱码!如下:        XMLWriter writer = new XMLWriter(new FileOutputStream("src/students_copy.xml"),format);

4.3 xml乱码问题

这里写图片描述

4.4 为什么设计出DAO

这里写图片描述

0 0