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. Java网络编程:利用Java mail包发送电子邮件

    下面代码是利用Java mail包封装了一个发送邮件的类 import java.io.File; import java.util.ArrayList; import java.util.Date; ...

  2. Robot Framework与Web界面自动化测试学习笔记:定位到新窗口

    在页面操作中,有时会需要打开新的窗口(新的网页不在当前窗口显示,而是在新的tab页显示), 比如利用  window.open("newurl") 或者  <a href=& ...

  3. BZOJ 3173: [Tjoi2013]最长上升子序列( BST + LIS )

    因为是从1~n插入的, 慢插入的对之前的没有影响, 所以我们可以用平衡树维护, 弄出最后的序列然后跑LIS就OK了 O(nlogn) --------------------------------- ...

  4. 去掉Qt加载png图像文件时候的iccp警告

    用QML加载png文件时显示如下警告(图像正常加载显示) libpng warning: iCCP: known incorrect sRGB profile libpng warning: iCCP ...

  5. Ansi,UTF8,Unicode,ASCII编码的差别

    近日须要不同的编码,关于上述编码,一直迷迷糊糊,查了些资料,总算大致了解了,以下全是从网上搜来的: 1.  ASCII和Ansi编码    字符内码(charcter code)指的是用来代表字符的内 ...

  6. 来推荐个免费的PPT演示工具--ZohoShowTime

    事实上这个不算新产品了,这次是做了一些大的改进.上次在Zoho的全球用户大会上,全程演讲都是用的这个工具.Zoho这点非常好啊.自己的产品自己带头用.个人认为它最大的用处就是.离得远的观众能够在自己的 ...

  7. 【linux】内核源代码下载与阅读

      原创,转载时请注明,谢谢.邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http://blog. ...

  8. Ubuntu下安装ADT(图文教程)

    个人感觉Ubuntu下安装ADT跟在Windows大同小异 一.装上JDK和Eclipse 如果还没有装上的,请参考我前面的博文: http://blog.csdn.net/ljphhj/articl ...

  9. Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表)

    Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUN ...

  10. 国际化之DateFormat、NumberFormat

    之所以在国际化中介绍DateFormat和NumberFormat这两个类,一是因为本身这两个类是地区敏感类,即可用传入Locale对象:二是因为这两个类具有不同的输出模式,而这些模式能在国际化的动态 ...