您的位置:首页 > 其它

dom4j解析XML实例

2016-03-03 18:09 288 查看
其中要导入的包为

dom4j-1.6.1.jar

jaxen-1.1-beta-6.jar

<span style="white-space:pre">	</span>/**
* 实现添加用户信息到数据库(XML)中
*/
public void add(User user) {
/**
* dom4j来解析XML
* 其中该user.xml格式为
* <users>
* 		<user username="张三" password="123"/>
<span style="white-space:pre">	</span> * 		<user username="王五" password="333"/>
* </users>
*/
SAXReader reader = new SAXReader();
try {
String path = "user.xml";
Document doc = reader.read(path);
// 得到根元素
Element root = doc.getRootElement();
// 通过根元素创建新元素,addElement表示已经附属于root了,就不用root.add(ele)这句话了
Element ele = root.addElement("user");
// 添加属性
ele.addAttribute("username", user.getUsername());
ele.addAttribute("password", user.getPassword());
/**
* 回写文档,这一块格外重要
*/
// 创建格式化输出器
/**
* 首先我们要知道,不带true参数的输出流构造都是重写
* new FileOutputStream(path):这是重写
* new FileOutputStream(path,true)这是往后添加
* 这里‘输出化格式器’的意思就是
* 1.要处理的内容一开始必须清空所有换行和缩进,形成所有内容在一行的形式
* 2.再把要处理的内容按照制表符上下层标签递进,并且上下层要换行
*/
OutputFormat format = new OutputFormat("\t", true);// 用制表符分割,标签之间需要换行
format.setTrimText(true);// 清空原有换行和缩进
// 创建XMLWriter
XMLWriter writer;
try {
/**
* 解释一下:本来是可以用FileWriter这个类的即
* writer = new XMLWriter(new FileWriter(path), "UTF-8"), format);
* 但是因为FileWriter这个类设计时没有给予处理编码的方法
* 所以只有用OutputStreamWriter来设置编码了
*
*/
writer = new XMLWriter(new OutputStreamWriter(
new FileOutputStream(path), "UTF-8"), format);
writer.write(doc);
writer.close();
} catch (Exception e1) {
// TODO Auto-generated catch block
throw new RuntimeException();
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
throw new RuntimeException();
}

}



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