一、XML解析方式有两类:
        一】DOM(文档对象模型)
            1)一次性将整个XML文件读到内存,形成一颗DOM树
        二】SAX(XML的简单API)[simple API for XML]
            1)SAX多次将XML文件的每部分读到内存

二、步骤:

  一】利用SAXReader类获取Document对象

        SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("src/com/suse/simpledom4j/car.xml"));

  二】通过Document获取元素和属性

    常用方法: 

              得到子元素的List集合:     List       elements()
得到元素的名称: String getName()
得到指定子元素引用: Element element("子元素名称");
得到子元素封装的信息: String elementText("子元素名称");
得到元素的属性值: String attributeValue("属性名");
添加一个子元素: Element addElement("子元素名称");
设置元素封装的信息: void setText("封装的信息");
删除一个子元素: boolean remove(子元素引用);
将元素转换成字符串: String asXML();

   三】通过XMLWriter类将内存中的XML文件回写到硬盘上

    常用类及方法:

       1)OutputFormat对象:制定流的输出时在文档中的显示格式
常用方法:
返回一个优美的格式器对象:static OutputFormat createPrettyPrint();
2) XMLWriter流对象:用于将内存中的XML文件输出到硬盘上
构造方法:
XMLWriter(输出流)
常用方法:
将内存中的XML写入到硬盘上:void writer(Document document);
关闭流:void close();

三、对XML文件进行增删改查

  code:

    private Document getDocument() throws Exception {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("src/com/suse/simpledom4j/car.xml"));
return document;
} @Test
public void add() throws Exception {
Document document = getDocument();
Element element = document.getRootElement();
Element carElement = (Element) element.elements().get(0);
Element priceElement = carElement.addElement("价格");
priceElement.setText("20万"); doc2XML(document);
} @Test
public void delete() throws Exception {
Document document = getDocument();
Element element = document.getRootElement();
List<Element> elmentList = element.elements(); Element carElement = elmentList.get(0);
Element priceElement = carElement.element("价格"); carElement.remove(priceElement); doc2XML(document);
} @Test
public void update() throws Exception {
Document document = getDocument();
Element rootElement = document.getRootElement();
Element carElement = (Element) rootElement.elements().get(0); carElement.element("价格").setText("60万元"); doc2XML(document);
} @Test
public void select() throws Exception {
Document document = getDocument();
Element rootElement = document.getRootElement(); Element carElement = (Element) rootElement.elements().get(0);
String price = carElement.element("价格").getTextTrim();
System.out.println("价格为:" + price);
} private void doc2XML(Document doc) throws Exception { //得到一个格式优美的格式输出器
OutputFormat outputFormat = OutputFormat.createPrettyPrint(); File file = new File("src/com/suse/simpledom4j/car.xml");
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(file), outputFormat); xmlWriter.write(doc);
xmlWriter.close(); }

四、其它API

 一】 DocumentHelper对象:   

          static Document createDocument();//创建一个Document对象
          static Element createElement("元素名");//创建一个元素,并返回此元素的子类【注:可以使用】
static Document parseText("符合XML格式的字符串");//创建一个document对象并返回
        
              

  二】在指定位置插入节点元素
              ----通过List集合的add(index,E)方法
          方法原型:
                void add(int index, E element);

  三】字符串与XML文件的转换

    1)字符串  --->    XML
                通过parseText方法
                eg:

             String text = "<members> <member>sitinspring</member></members>";
Document dDocument = DocumentHelper.parseText(text);

2)XML   --->        字符串
                通过asXML方法:Document、和Element对象都具有此方法
                eg:

                     SAXReader reader = new SAXReader();
Document document = reader.read(new File("input.xml"));
Element rootElement = docuemnt.getRootElement();
Element memberElement = root.element("member"); String str_doc = document.saXML();
String str_rootEle = rootElement.asXML();
String str_memberEle = memberElement.asXML();

XML解析之dom4j的更多相关文章

  1. Java XML解析工具 dom4j介绍及使用实例

    Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...

  2. 【Java】XML解析之DOM4J

    DOM4J介绍 dom4j是一个简单的开源库,用于处理XML. XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP,使用需要引用dom4j.jar包 ...

  3. xml解析 使用dom4j操作xml

     使用dom4j操作xml 1 导入 dom4j,的jar包   2 指定要解析的XML文件 SAXReader sr=new SAXReader(); Document document= sr.r ...

  4. XML 解析之 dom4j 解析器

    dom4j 的使用需要导入 jar 包, 包括: dom4j-1.6.1 和 jaxen-1.1-beta 步骤: 在项目目录下,"Folder" 创建一个 lib 文件夹 复制 ...

  5. Java -- XML解析工具dom4j

    前言 XML现已成为一种通用的数据交流方式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便,对于XML的解析有四种方式:DOM生成和解析XML文档,SAX生成和解析XML文件 ...

  6. XML解析技术-dom4j

  7. DOM综合案例、SAX解析、StAX解析、DOM4J解析

    今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * ...

  8. 具体解释XML解析(一)—解析接口浅析

    在DRP项目中接触到了一个XML解析工具DOM4J,它作为解析工具的据说性能很优秀.可是刚刚接触解析工具不久,而且也没有使用过其它的解析工具.因此对于DOM4J的性能没有直接的感受(没有參照物).只是 ...

  9. Dom4j解析Xml文件,Dom4j创建Xml文件

    Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...

随机推荐

  1. C语言的一个关键字——static

      Static在C语言里面有两个作用,第一个是修饰变量,第二个是修饰函数. 1.Static修饰变量 按照作用范围的不同,变量分为局部变量和全局变量.如果用static修饰变量,不论这个变量是全局的 ...

  2. Java---设计模式app小软件汇总应用

    写了一个app小软件,重点不在于软件,软件bug挺多,也没去修改. 这个小软件只是为了更好的说明和了解设计模块而做的. Java 程序设计–包结构 Java程序设计的系统体系结构很大一部分都体现在包结 ...

  3. Android取得屏幕的高度和宽度

    //获得手机屏幕的宽度和高度 width=getWindowManager().getDefaultDisplay().getWidth(); height=getWindowManager().ge ...

  4. Hadoop2.4.1 使用MapReduce简单的数据清洗

    package com.bank.service; import java.io.IOException;import java.text.ParseException;import java.tex ...

  5. hand第四次考核

    使用Spring与Mybatis技术实现下要求: (2分)1,Spring的配置文件名称为ApplicationContext.xml (2分)2,在ApplicationContext.xml中配置 ...

  6. HBase的rowkey的设计原则

    HBase是三维有序存储的,通过rowkey(行键),column key(column family和qualifier)和TimeStamp(时间戳)这个三个维度可以对HBase中的数据进行快速定 ...

  7. 关于使用mybatis插件自动生成代码

    1.安装 mybatis 插件: 在 eclipse 中 点击 help-->Install New Software...--> Add --> local  选择插件中eclip ...

  8. [ES6] Rest Parameter

    Problem with the ES5: function displayTags(){ for (let i in arguments) { let tag = arguments[i]; _ad ...

  9. Linux字符设备驱动

    一.字符设备基础 字符设备 二.字符设备驱动与用户空间访问该设备的程序三者之间的关系 三.字符设备模型 1.Linux内核中,使用 struct cdev 来描述一个字符设备 动态申请(构造)cdev ...

  10. Java 之 StringTokenizer

    class StringTokenizer Object to: break a string into tokens. Contructs StringTokenizer(String str)   ...