您的位置:首页 > 其它

dom4j生成或解析xml文档

2012-08-14 16:02 411 查看
xml是一种新的数据格式,主要用于数据交换。我们所用的框架都有涉及到xml。因此解析或生成xml对程序员也是一个技术难点。这里就用dom4j来生成一个文档,需要注意的是每个xml文档只有一个根节点。

[java] view
plaincopy

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。

代码如下所示

[java] view
plaincopy

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();

}

}

}

下面是运行效果截图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: