什么是解析xml
  系统最终会从xml中读取数据. 读取的过程就是解析.

CRUD ==> 增删改查 ==> create read update delete ==> 解析指的就是读.

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

两个常见的解析xml的思路
思想
  DOM 将文档中所有内容都封装成对象. 读取时,将所有对象都加载到内存中. 在内存中创建一颗dom树(记录对象间的关系).
优点  方便的进行增删改查.
缺点  会非常消耗内存.

  SAX 事件驱动的. 与pull解析类似.把xml文档的读取过程,划分出5类事件.我们只要提供遇到每类事件做什么的锦囊即可.
优点  内存占用小.
缺点  不能进行增删改的操作.

DOM 解析是由w3c推荐提出的.
SAX  解析是由民间提出的.

DOM 把所有内容封装成了5类对象.
  document  Element  Attribute  Text  Commons
共同的父类
node
  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

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

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

DOM4J ==> 框架 ==>
Dom for java
DOM4J 整合两种思想.(SAX DOM)的思想. 使用sax的思想做读取xml. 又参照dom的思想,也在内存中创建了一颗对象关系树.

用dom4j如何避免乱码

要保证写入的编码和读取的编码一致
  1.写入的编码如何控制?
  XMLWriter writer = new XMLWriter(new PrintWriter("src/str.xml","UTF-8"),format);
  2.读取的编码如何控制?
  <?xml version="1.0" encoding="GBK"?>,其中encoding属性决定了读取时采用什么编码,而encoding属性由format.setEncoding("GBK");控制.

//其实要保证不乱码上面的方法太弱了!
方法  使用字节流绝对不会出现乱码! 如下
  XMLWriter writer = new XMLWriter(new FileOutputStream("src/str.xml"),format);

DOM4J熟知的更多相关文章

  1. XML技术之DOM4J解析器

    由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...

  2. 四种解析和创建方式(DOM,SAX,DOM4J,JDOM)

    一.先导入jar包 DOM基于树形,SAX基于事件,DOM4J和JDOM基于底层API 二.代码如下 1 package com.sxt.test; import java.io.File; impo ...

  3. dom4j的小例子

    1.要解析的xml文件book.xml <?xml version="1.0" encoding="UTF-8"?> <books> & ...

  4. Dom4J解析技术

    前面的话  本文主要讲解有关Dom4j技术和xpath配合下的优化!   目录:    为什么需要Dom4J    DOM4J怎么用    xpath怎么配合DOM4J 一  为什么需要Dom4J 一 ...

  5. Dom4j解析xml文件

    dom4j是一个Java的XML API,类似于jdom,用来读取的XML文件,由于它是将文件解析完存放在内存当中的,所以不适合解析大的XML文件,但就方便性和性能方面,一定程度要优于JDK中Domc ...

  6. java dom4j封装和解析XML

    package org.scbit.lsbi.scp.utils; import java.util.ArrayList; import java.util.List; import org.dom4 ...

  7. xml之dom4j解析

    * 使用dom4j解析xml 实例在java520里面 TextDom4j * dom4j,是一个组织,针对xml解析,提供解析器dom4j * dom4j不是javase的一部分,想要使用第一步需要 ...

  8. 使用dom4j读取xml连接数据库与之单例模式

    使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...

  9. dom4j解析示例

    收藏信息.xml <?xml version="1.0" encoding="GB2312" standalone="no"?> ...

随机推荐

  1. 纸飞机AE小教程

  2. PSAM 卡的应用 操作方法

    PSAM 卡的应用        PSAM 功能 终端安全存储模块        PASM  常用于 脱机交易的 安全认证        脱机交易的流程          1.卡片对持卡人的认证(防止 ...

  3. ANDROID 中设计模式的采用--行为模式

     1 职责链模式 职责链模式的意图为:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止.使多个对象都有 ...

  4. Working with bounded Task Flows

      Working with Bounded Task Flows, Regions and Routers in JDeveloper 11g Purpose In this tutorial, y ...

  5. OAF中的MASTER-DETAIL关系

    在日常开发中,我们经常会遇到头行结构,并且要求打开界面,行是隐藏的,点击头上的"显示"按钮,才要求头对应的行信息全部显示出来,这样,我们就用到了Master-Detail结构. 下 ...

  6. Leetcode_228_Summary Ranges

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46762039 Given a sorted integer ...

  7. ActiveMQ系列之一:ActiveMQ简介

    ActiveMQ是什么  ActiveMQ是Apache推出的,一款开源的,完全支持JMS1.1和J2EE 1.4规范的JMS   Provider实现的消息中间件 (Message Oriented ...

  8. EBS R12安装升级(FRESH)(二)

    3 Linux系统设置 这一节步骤基本都在终端root用户下进行. 自行熟悉vi或其他文本工具的用法. 3.1 host-only外网连接 如果用的NAT模式这一节略过. 右击当前主机连接外网的网卡, ...

  9. 导入android SlidingMenu 应用

    SlidingMenu is a helpful Android library for developers. It creates a side navigation like the Faceb ...

  10. UITableView设置单元格选中后只显示一个打勾的三种简单方法(仅供参考)

    1.第一种方法:先定位到最后一行,若选中最后一行直接退出,否则用递归改变上次选中的状态,重新设置本次选中的状态. - (UITableViewCell*)tableView:(UITableView* ...