您的位置:首页 > 编程语言 > Java开发

[转]java解析xml之一 Dom4j

2009-11-25 22:41 405 查看
java解析xml之一 Dom4j
【实现:】
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
*
* @author xiaohua
* Dom4j 生成XML文档与解析XML文档
*/
public class Dom4jDemo implements XmlDocument
{
public void init()throws Exception
{

}
/*
(non-Javadoc)
* @paranm fileName 文件名称
*/
public void createXml(String fileName) throws Exception
{
//1.产生Document对象
Document doc=DocumentHelper.createDocument();
//2.产生根元素
Element employees=doc.addElement("employees");
//3.产生子元素
Element employee=employees.addElement("employee");
//4.利用子元素添加属性和值
Element name=employee.addElement("name");
name.setText("xiaohua");
Element sex=employee.addElement("sex");
sex.setText("w");
Element age=employee.addElement("age");
age.setText("22");
try
{
//5.利用Writer对象,产生XMLWriter对象
Writer w=new FileWriter(fileName);
XMLWriter xml=new XMLWriter(w);
//6.将Document对象写入xml对象中
xml.write(doc);
7.关闭XMLWriter对象
xml.close();

}
catch(IOException ioe)
{
ioe.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void parserXml(String fileName)throws Exception
{
//1.分别产生File和SAXReader
File inputXml=new File(fileName);
SAXReader saxReader = new SAXReader();//SAXReader 解析xml的
try {
//2. 利用SAXReader对象读取文件的信息,并返回Document对象
Document doc=saxReader.read(inputXml);
//3.利用Document对象对象产生根元素
Element employees=doc.getRootElement();
//4.遍历根元素的内容
for(Iterator i=employees.elementIterator();i.hasNext();)
{
//5.根元素的集合对象来获取子元素
Element employee=(Element)i.next();
//6.遍历子元素内容
for(Iterator j=employee.elementIterator();j.hasNext();)
{
//7.获取子元素节点信息
Element node=(Element)j.next();
System.out.println("节点名称:"+node.getName()+"值:"+"------>"+node.getText());
}

}

} catch (DocumentException e) {

System.out.println(e.getMessage());

}

System.out.println("dom4j parserXml");

}

public static void main(String[] ar)throws Exception
{
Dom4jDemo d=new Dom4jDemo();
//d.createXml("e://employees.xml");
d.parserXml("e://employees.xml");
}
public void pareser(String fileName) throws Exception
{
// TODO Auto-generated method stub

}
}
显示效果:

Employees。Xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<name>ddviplinux</name>
<sex>m</sex>
<age>30</age>
</employee>
<employee>
<name>ddd</name>
<sex>m</sex>
<age>22</age>
</employee>
</employees>

【小结】:
1. DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。
2. SAXReader 解析xml的常用类。
解析步骤:
//1.分别产生File和SAXReader
//2. 利用SAXReader对象读取文件的信息,并返回Document对象
//3.利用Document对象对象产生根元素
//4.遍历根元素的内容
//5.根元素的集合对象来获取子元素
//6.遍历子元素内容
//7.获取子元素节点信息

3.写入xml文件的类:XMLWriter。写入语句Writer w=new FileWriter(fileName);
XMLWriter xml=new XMLWriter(w);
xml.write(doc);
步骤:
a. //1.产生Document对象
b.//2.产生根元素
c. //3.产生子元素
d.//4.利用子元素添加属性和值
e. //5.利用Writer对象,产生XMLWriter对象
f. //6.将Document对象写入xml对象中
g.7.关闭XMLWriter对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: