java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要介绍了 java 使用 dom4j 生成与解析 xml 文档的方法, 结合实例形式分析了 java 基于 dom4j 操作 xml 节点生成 xml 文档以及解析 xml 文档的相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 java 使用 dom4j 生成与解析 xml 文档的方法。分享给大家供大家参考,具体如下:
xml 是一种新的数据格式,主要用于数据交换。我们所用的框架都有涉及到 xml。因此解析或生成 xml 对程序员也是一个技术难点。这里就用 dom4j 来生成一个文档,需要注意的是每个 xml 文档只有一个根节点。
- package org.lxh;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.UnsupportedEncodingException;
- import org.dom4j.Document;
- import org.dom4j.DocumentHelper;
- import org.dom4j.Element;
- import org.dom4j.io.OutputFormat;
- import org.dom4j.io.XMLWriter;
- public class CreateXml {
- public static void main(String[] args) {
- File f = new File("d:" + File.separator + "my.xml");
- Document docu = DocumentHelper.createDocument(); //创建xml文档
- Element linkman = docu.addElement("linkman"); //创建根节点
- Element name = linkman.addElement("name"); //创建子元素
- Element age = linkman.addElement("age");
- name.setText("陈瑞银"); //设置name节点的内容
- age.setText("22"); //设置age节点的内容
- OutputFormat format = OutputFormat.createPrettyPrint(); //指定输出格式
- format.setEncoding("UTF-8"); //指定输出编码
- try {
- XMLWriter w = new XMLWriter(new FileOutputStream(f), format); //输出文件
- w.write(docu); //输出内容
- w.close();
- } catch(Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
现在看一下文档生成没有,如图所示
文档生成了,这个文档比较简单。生成复杂的文档也是一样的道理。下面来解析一下这个 xml。
代码如下所示
- package org.lxh;
- import java.io.File;
- import java.util.Iterator;
- import org.dom4j. * ;
- import org.dom4j.io.SAXReader;
- public class ReadXml {
- public static void main(String[] args) {
- File f = new File("d:" + File.separator + "my.xml");
- SAXReader read = new SAXReader(); //建立SAX解析读取
- Document document = null;
- try {
- document = read.read(f); //读取文档
- Element root = document.getRootElement(); //取得根元素
- //下面给注释的部分用于解析复杂的xml(3层或以上)
- /*Iterator it=root.elementIterator(); //取得全部子节点
- while(it.hasNext())
- {
- /*Element e=(Element)it.next();
- System.out.println(e.elementText("name")); //取得文本元素
- System.out.println(e.elementText("age"));
- }*/
- System.out.println(root.elementText("age"));
- } catch(Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
下面是运行效果截图
希望本文所述对大家 java 程序设计有所帮助。
来源: http://www.phperz.com/article/18/0106/356294.html