Tip:DOM4J解析XML文档

Dom4j是一个简单、灵活的开放源代码的库。Dom4j是由早期开发JDOM的人分离出来而后独立开发的。与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性。 
Dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点。现在很多软件采用的Dom4j,例如Hibernate,包括sun公司自己的JAXM也用了Dom4j。
使用Dom4j开发,需下载dom4j相应的jar文件。

Tip:Document对象

DOM4j中,获得Document对象的方式有三种:

1.读取XML文件,获得document对象            
                   SAXReader reader = new SAXReader();              Document   document = reader.read(new File("input.xml"));

2.解析XML形式的文本,得到document对象.
                   String text = "<members></members>";              Document document = DocumentHelper.parseText(text);

3.主动创建document对象.
                  Document document = DocumentHelper.createDocument();             //创建根节点
                  Element root = document.addElement("members");

Tip:节点对象

1.获取文档的根节点.
      Element root = document.getRootElement();

2.取得某个节点的子节点.
Element element=node.element(“书名");

3.取得节点的文字
      String text=node.getText();

4.取得某节点下所有名为“member”的子节点,并进行遍历. List nodes = rootElm.elements("member");  for (Iterator it = nodes.iterator(); it.hasNext();) {     Element elm = (Element) it.next();    // do something }

5.对某节点下的所有子节点进行遍历.    for(Iterator it=root.elementIterator();it.hasNext();){       Element element = (Element) it.next();       // do something    }

6.在某节点下添加子节点. Element ageElm = newMemberElm.addElement("age");

7.设置节点文字. element.setText("29");

8.删除某节点. //childElm是待删除的节点,parentElm是其父节点
    parentElm.remove(childElm);
9.添加一个CDATA节点. Element contentElm = infoElm.addElement("content"); contentElm.addCDATA(diary.getContent());

Tip:节点对象属性

1.取得某节点下的某属性    Element root=document.getRootElement();        //属性名name
         Attribute attribute=root.attribute("size");
2.取得属性的文字    String text=attribute.getText();

3.删除某属性 Attribute attribute=root.attribute("size"); root.remove(attribute);

3.遍历某节点的所有属性   Element root=document.getRootElement();       for(Iterator it=root.attributeIterator();it.hasNext();){         Attribute attribute = (Attribute) it.next();         String text=attribute.getText();         System.out.println(text);    }

4.设置某节点的属性和文字.   newMemberElm.addAttribute("name", "sitinspring");

5.设置属性的文字   Attribute attribute=root.attribute("name");   attribute.setText("sitinspring");

Tip:将文档写入XML文件.

1.文档中全为英文,不设置编码,直接写入的形式.  XMLWriter writer = new XMLWriter(new  FileWriter("output.xml"));  writer.write(document);  writer.close();

2.文档中含有中文,设置编码格式写入的形式. OutputFormat format = OutputFormat.createPrettyPrint(); // 指定XML编码                   
     format.setEncoding("GBK");       XMLWriter writer = new XMLWriter(newFileWriter("output.xml"),format); writer.write(document); writer.close();

Tip:Dom4j在指定位置插入节点

1.得到插入位置的节点列表(list)
2.调用list.add(index,elemnent),由index决定element的插入位置。
Element元素可以通过DocumentHelper对象得到。示例代码:

Element aaa = DocumentHelper.createElement("aaa");
aaa.setText("aaa");

List list = root.element("书").elements();
list.add(1, aaa);

//更新document

DOM4J解析XML文档的更多相关文章

  1. 使用dom4j解析XML文档

    dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不 ...

  2. 使用DOM4J解析XML文档,以及使用XPath提取XML文档

    使用DOM4J解析XML文档 需要首先下载DOM4J工具包.这是个第三方工具包 在使用DOM4J解析的时候需要导入 DOM4J的JAR包 下载DOM4J工具包->在MyEclipse中新建lib ...

  3. 源生API解析XML文档与dom4j解析XML文档

    一.XML语言 XML是一种可扩展的标记语言,是一种强类型的语言,类似HTML(超文本标记语言,是一种弱类型的语言).XML是一种通用的数据交换格式(关系型数据库),综上所诉:XML可以传输数据,也可 ...

  4. javaweb dom4j解析xml文档

    1.什么是dom4j dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它 ...

  5. 【学习笔记】关于DOM4J:使用DOM4J解析XML文档

    一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org. ...

  6. dom4j解析xml文档全面介绍

    一.dom4j介绍 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点, ...

  7. dom4j解析xml文档&保存数据的乱码问题

    package itcast.dom4j; import java.io.File; import java.io.FileOutputStream; import java.io.FileWrite ...

  8. XML案例(使用DOM4J解析XML文档)

    1.Demo1.java package cn.itcast.dom4j; import java.io.File;import java.io.FileOutputStream;import jav ...

  9. Strus2第一次课:dom4j解析xml文档

    xml文本标记语言: 常用于交换数据:独立于操作系统.编程语言数据存储:xml数据配置:灵活性强,可读性高可以使用css样式改变xml样式 xml解析技术:dom解析xml技术: sax解析xml技术 ...

随机推荐

  1. (诊断)为GitHub添加SSH key时出现“Could not open a connection to your authentication agent”错误的应对方案(转)

    在为windows 环境下的github账户添加SSH key时,需要在Git Bash执行如下命令: 第一步:检查已有的SSH keys $ ls -al ~/.ssh 第二步:生成新的SSH ke ...

  2. 怎样建立一个bower私库

    本教程适用于centos 安装之前 检查nodejs 假设没安装nodejs依照下面步骤安装 $ su - $ yum install openssl-devel $ cd /usr/local/sr ...

  3. JAVA多态学习3

    这一节我们来学习抽象类 抽象类–深入讨论 抽象类是java中一个比較重要的类. 1.用abstract关键字来修饰一个类时.这个类就是抽象类. 2.用abstract关键字来修饰一个方法时,这种方法就 ...

  4. android5.0(Lollipop) BLE Peripheral深入理解系统篇之提高篇

    上一篇文章讲到了广播之前系统需要进行的准备工作,那接下来我们就来真正的启动广播. 首先还是先看一下上一篇文章结束的地方: @Override public void onClientRegistere ...

  5. 在Qt中如何使用QtDesigner创建的UI文件

    使用Qt有一些时间了,一直在IDE环境(qtcreator和VS2003+集成器)中使用,自然少了很多麻烦的步骤.但是在享受这种便利的同 时,我们也失去了理解更多知识背后的点滴.在IDE中,如果我们要 ...

  6. ubuntu 安装LaTex

    使用IDE来使用tex,如TexMaker. 1.到http://www.tug.org/texlive/acquire-netinstall.html 下载texlive. 2.linux下命令行, ...

  7. boost ini

    #include <boost/property_tree/ptree.hpp>#include <boost/property_tree/ini_parser.hpp> .. ...

  8. MSSQL - 多表查询

    SELECT u.UserNumber, u.UserName, c.CarNumber, c.CarName, c.CarEngine, s.BuyLs, s.BuyTime FROM Tb_Sal ...

  9. (摘录)26个ASP.NET常用性能优化方法

    数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...

  10. C++学习之路—多态性与虚函数(二)纯虚函数与抽象类

    (根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 1    纯虚函数 在前面的博客中已经提到:有时 ...