Dom4j解析xml

读:
①:通过流的方式获得XML文件
②:创建文档对象
③:获得根节点
④:层层遍历,封装为POJO类,转化为集合
写:
①:创建文档对象
②:创建根节点
③:根节点依次添加子节点,设置节点属性等等
④:通过文件流写XML文件
导入Jar,使用dom4j-1.6.1.jar


f://a.xml:

<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<jimo>
<book id="b001">
<booktitle>史记</booktitle>
<author>司马迁</author>
<price>199.00</price>
</book>
<book id="b002">
<booktitle>平凡的世界</booktitle>
<author>路遥</author>
<price>56.80</price>
</book>
<book id="b003">
<booktitle>西方经济学</booktitle>
<author>保罗.萨缪而森</author>
<price>98.80</price>
</book>
</jimo>


读xml

package test;

import java.io.File;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class GeReadXml {
public void parserXml(String fileName) {
// 文件对象
File input = new File(fileName);
// SAXReadr对象
SAXReader saxr = new SAXReader();
try {
// 调用SAXReader的read方法将文件对象传入进去即可获得文档对象
Document document = saxr.read(input);
// 获得文档的根元素
Element rootElement = document.getRootElement();
// 遍历一级节点 使用迭代的方法
for (Iterator i = rootElement.elementIterator(); i.hasNext();)

{
// 返回下一个迭代元素
Element book = (Element) i.next();
// 调用 Element元素.attributeValue 方法就可以获得节点的属性
System.out.println("哥的ID是" + book.attributeValue("id"));
// 遍历一级节点下的所有子节点
for (Iterator j = book.elementIterator(); j.hasNext();) {
// 返回下一个迭代元素
Element node = (Element) j.next();
System.out.println("键:" + node.getName());
System.out.println("值:" + node.getText());
}
}
} catch
(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
GeReadXml g = new GeReadXml();
g.parserXml("F://a.xml");
}
}


写xml

package test;

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;

public class GeWriteXml {
public void createXml(String fileName) {
// 通过DocumentHelper 这个文档帮助类来创建文档对象
Document document = DocumentHelper.createDocument();
// 创建元素对象 这个用于充当根元素 第一次addElement的就是根元素
Element employees = document.addElement("employees");
// 创建一个子元素对象
Element employee = employees.addElement("employee");

// 给子元素设置值
Element name = employee.addElement("name");
name.setText("cwt123");
Element sex = employee.addElement("sex");
sex.setText("man");
Element age = employee.addElement("age");
age.setText("19");
try {
// 创建写入字符流对象 fileName是路径名称
Writer fileWriter = new FileWriter(fileName);
// 创建dom4j的写入器 将字符流对象放进去
XMLWriter xmlWriter = new XMLWriter(fileWriter);
// 调用写入器的write方法就可以创建xml文件成功
xmlWriter.write(document);
// 关闭写入器
xmlWriter.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}

}

public static void main(String[] args) {
GeWriteXml gwx = new GeWriteXml();
gwx.createXml("f://employee.xml");
System.out.println("Ge Done!");
}
}


引自:[url]http://blog.csdn.net/chenweitang123/article/details/6230435[/url]
DOM4J完整教程:[url]http://blog.csdn.net/chenweitang123/article/details/6255108[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值