DOM4J介绍

  DOM4J是使用Java语言编写的,用于读写及操作XML的一套组件,DOM4J同时具有DOM修改文件的优点和SAX读取快速的优点。

  DOM4J的使用

  首先下载dom4j的JAR包,我用的版本是1.6.1,下载地址:http://download.csdn.net/detail/onroads/9721574

  使用方法《使用JDOM操作XML》,链接:http://www.cnblogs.com/centor/p/6215082.html

  另外,解压后用到dom4j01.6.1.jar文件,还有一个lib/jaxen-1.1-beta-6.jar文件,一般也需要引入,否则执行时可能抛出java.lang.NoClassDefFoundError:org/jaxen/JaxenException异常。DOM4J的主要接口如下:

  使用DOM4J

  生成xml例程:

 package com.xml;

 import java.io.File;
import java.io.FileOutputStream; import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter; public class XMLtest { public static void main(String args[]) throws Exception { String[] names = {"鸣人","佐助","小樱"};
String[] emails = {"mingren@163.com","zuozhu@163.com","xiaoying@163.com"};
String[] ids ={"H1","H2","H3"}; Document doc = DocumentHelper.createDocument();
Element addresslist = doc.addElement("addresslist"); for (int i = 0; i < 3; i++) {
Element linkman = addresslist.addElement("linkman");
Element name = linkman.addElement("name");
Element email = linkman.addElement("email");
name.setText(names[i]);
email.setText(emails[i]);
name.setAttributeValue("id", ids[i]);
} OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
try {
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("D:"+File.separator+"person.xml"), format);
xmlWriter.write(doc);
xmlWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

  生成的xml文件:

  

解析XML文件:

 package com.xml;

 import java.io.File;
import java.util.Iterator; import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; public class XMLtest { public static void main(String args[]) throws Exception { File file = new File("D:"+File.separator+"person.xml");
SAXReader reader = new SAXReader();
Document doc = null;
try {
doc = reader.read(file); } catch (Exception e) {
e.printStackTrace();
} Element root = doc.getRootElement();
Iterator iterator = root.elementIterator();
while(iterator.hasNext()){
System.out.println("<linkman>");
Element linkman = (Element) iterator.next();
System.out.println(" <name id="+ linkman.element("name").attributeValue("id")+">"+linkman.elementText("name")+"</name>");
System.out.println(" <email>"+linkman.elementText("email")+"</email>");
System.out.println("</linkman>");
}
}
}

解析结果:

使用dom4j操作XML的更多相关文章

  1. xml解析 使用dom4j操作xml

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

  2. DOM4J操作XML(包括封装和解析)

    DOM4J操作XML(包括封装和解析) 先来看看dom4j中相应XML的DOM树建立的继承关系 针对于XML标准定义.相应于图2-1列出的内容,dom4j提供了下面实现: 以下给出一个详细事例: pa ...

  3. Strus2第一次课:dom4j操作xml

    先从底层的xml操作技术记录: 当我们新建一个项目,什么架包都没加入的时候,java提供了 org.w3c.dom给我们操作xml里面的元素 import org.w3c.dom.Document; ...

  4. XML学习笔记(2)--dom4j操作XML

    1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...

  5. dom4j操作xml文档

    java Dom4j解析XML文件 标签(空格分隔):java进阶 xml文档: <?xml version="1.0" encoding="UTF-8" ...

  6. 使用Dom4j操作XML数据

    --------------siwuxie095                             dom4j 是一个非常优秀的 Java XML 的 API, 用来读写 XML 文件 和操作 ...

  7. dom4j操作xml

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件.是一个非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源工具.可以在这个 ...

  8. dom4j操作xml对象

         // 获取Documen对象      public static Document getDocument(String path) throws Exception{           ...

  9. dom4j操作xml的demo

    package com.cn.shop.util; import java.io.File;import java.io.FileOutputStream;import java.io.OutputS ...

随机推荐

  1. __DATE__ 与 __TIME__转换为标准格式时间字符串的方法

    // Example of __DATE__ string: "Jul 27 2012"// 01234567890 #define BUILD_YEAR_CH0 (__DATE_ ...

  2. C++强制类型转换

    C语言强制类型转换过于粗暴,任意类型之间都可以进行转换,编译很难判断其正确性; 难于定位,在源码中无法快速定位所有使用强制类型转换的语句. C++将强制类型转换分为4种不同的类型:static_cas ...

  3. 掌握Thinkphp3.2.0----SQL查询

    首先,先谈一下对查询的理解:查询的对象是数据库中的数据表,一个或多个:查询的限制就是各种条件或要求:查询的结果=表对象+限制(条件). 对数据表的操作(CRUD)查询是最复杂也是最关键的一步!'SEL ...

  4. iOS开发中获取WiFi相关信息

    iOS 开发中难免会遇到很多与网络方面的判断,这里做个汇总,大多可能是与WiFi相关的. 1.Ping域名.Ping某IP 有 时候可能会遇到ping 某个域名或者ip通不通,再做下一步操作.这里的p ...

  5. extjs 4.2 高度自适应

    问题描述: gridPanel放在tabpanel页中,而且这个tabpanel页是通过add方法添加的,页面整体布局是:首先一个viewPort布局,left区域是一个treePanel,通过点击t ...

  6. [原]简易android反编译教程

    1.apktool d -f <.apk> <output> 反编译出资源文件(及smali)2.使用winrar打开apk,提取出classed.dex,执行 d2j-dex ...

  7. Spring boot学习一

    SSM框架:Spring+SpringMVC+MyBatisSpring Boot一.pom文件:pom.xml中添加:    <!--spring-boot-starter-web提供了对we ...

  8. 用python实现计算1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))类似的公式计算

    作业需求: 开发一个简单的python计算器 1.实现加减乘除及拓号优先级解析 2.用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 ...

  9. jQuery工具函数(转)

    原文地址:http://www.cnblogs.com/kissdodog/archive/2012/12/27/2835561.html 作者:逆心 ------------------------ ...

  10. storage disk

    scsi fdisk -l can not display the new disk Rescan the SCSI Bus to Add a SCSI Device Without rebootin ...