使用dom4j工具包实现对xml文件的增删改查和乱码问题的处理
2012-05-02 20:40
417 查看
使用dom4j工具包实现对xml文件的增删改查,xml文件为:
实现代码为:
运行结果为:
乱码问题通过OutputFormat类来解决,根据xml文件中使用的码表,设置输出器的码表,而且XM4LWrite中的参数第一个为字节输出,也可使用可更改码表的字符输出。
<?xml version="1.0" encoding="gb2312"?> <书架> <书> <书名 name="the daught of sea">海的女儿</书名> <作者>安徒生</作者> <售价>50.0元</售价> </书> <书> <书名>卖火柴的小女孩</书名> <作者>安徒生</作者> <售价>28.0元</售价> </书> </书架>
实现代码为:
package com.java.dom; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import org.junit.Test; public class DomParse { @Test public void find() throws DocumentException { //创建读取器 SAXReader reader = new SAXReader(); //将读取的结果放在document中 Document doc = reader.read(new File("src/books.xml")); //得到根节点 Element root = doc.getRootElement(); Element book = (Element) root.elements("书").get(0); String value = book.element("书名").attributeValue("name"); System.out.println(value); } @Test public void add() throws DocumentException, IOException { SAXReader reader = new SAXReader(); Document doc = reader.read(new File("src/books.xml")); Element root = doc.getRootElement(); Element book = (Element) root.elements("书").get(0); book.addElement("售价").setText("39.0元"); //创建一个漂亮的输出器 OutputFormat format = OutputFormat.createPrettyPrint(); //设置输出器的码表 format.setEncoding("gb2312"); XMLWriter writer = new XMLWriter(new FileOutputStream("src/books.xml"),format); //将更改的xml文件写回 writer.write(doc); } @Test public void delete() throws DocumentException, IOException { SAXReader reader = new SAXReader(); Document doc = reader.read(new File("src/books.xml")); Element root = doc.getRootElement(); Element book = (Element) root.elements("书").get(1); Element price = (Element) book.elements("售价").get(0); book.remove(price); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("gb2312"); XMLWriter writer = new XMLWriter(new FileOutputStream("src/books.xml"),format); writer.write(doc); } @Test public void modify() throws DocumentException, IOException { SAXReader reader = new SAXReader(); Document doc = reader.read(new File("src/books.xml")); Element root = doc.getRootElement(); Element book = (Element) root.elements("书").get(0); Element price = (Element) book.elements("作者").get(0); price.setText("Hello"); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("gb2312"); XMLWriter writer = new XMLWriter(new FileOutputStream("src/books.xml"),format); writer.write(doc); } }
运行结果为:
<?xml version="1.0" encoding="gb2312"?> <书架> <书> <书名 name="the daught of sea">海的女儿</书名> <作者>Hello</作者> <售价>50.0元</售价> <售价>39.0元</售价> </书> <书> <书名>卖火柴的小女孩</书名> <作者>安徒生</作者> </书> </书架>
乱码问题通过OutputFormat类来解决,根据xml文件中使用的码表,设置输出器的码表,而且XM4LWrite中的参数第一个为字节输出,也可使用可更改码表的字符输出。
相关文章推荐
- 使用dom4j工具包实现对xml文件的增删改查和乱码问题的处理
- 【dom4j xml】使用dom4j处理XML文件--测试过程遇到的问题
- 使用dom4j解析xml文件时遇到一个怪问题
- 处理使用strrev()函数时的乱码问题
- 使用cmd打印log "adb logcat" 并且处理乱码的问题
- 在struts1中使用DispatchAction对应多个ActionForm,实现写一个Action实现增删改查操作---一个Action处理多个操作的能力
- 使用redis 实现分布式锁,处理并发问题
- JAVA使用Dom4j实现字符串和xml文件相互转换
- 总结使用dom4j和xpath对xml文件的增删改查
- 使用mc-tool实现empathy的自动登录与处理密钥环问题
- web开发各种乱码问题处理全集 保证解决99%的乱码错误(包括mysql的乱码解决,使用struts2框架的乱码问题)
- java 使用DOM4J对XML文件进行增删改查操作
- C++编程笔记:使用WinHTTP实现HTTP访问(解决接收UTF8数据乱码问题)
- 使用dom4j 读取xml文件时的中文问题(转)
- VC轻松解析XML文件--CMarkup使用方法(解决解析中文字符出现乱码问题)
- javaweb-图片的下载实现及分别处理浏览器乱码问题
- python中使用xmltodic处理xml文件,关于其中的列表问题。
- VC轻松解析XML文件--CMarkup使用方法(解决解析中文字符出现乱码问题)
- Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)
- C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题