使用dom4j工具包实现对xml文件的增删改查和乱码问题的处理
2012-05-02 20:40
429 查看
使用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文件时遇到一个怪问题
- 使用Qt Visual Studio Add-in 实现中文ts文件,解决中文乱码问题
- ERROR:使用dom4j解析xml文件遇到中文路径问题
- Ajax的底层实现--使用Ajax实现无刷新登录实例--解决ajax中URl参数带中文的乱码问题
- 【Question03】使用 Spring mvc 框架的时候如何处理乱码问题
- 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】
- 使用Apache通过JK实现多Tomcat负载均衡集群时,Apache不能将请求分发给Tomcat处理(即Apache反向代理不成功)的问题
- 问题处理-JPA使用CASE...WHEN...语句实现数据排序问题
- javaweb-图片的下载实现及分别处理浏览器乱码问题
- struts2实现下载+登录权限验证以及中文处理乱码问题
- Linux平台下第三方软件中使用光标键乱码的问题处理
- 总结使用dom4j和xpath对xml文件的增删改查
- java 使用DOM4J对XML文件进行增删改查操作
- 黑马程序员---关于使用dom4j写入数据时的乱码问题分析
- 使用Mina实现数据采集时出现的断包、半包的问题处理
- JAVA使用Dom4j实现字符串和xml文件相互转换
- 使用dom4j操作xml实现增删改查
- 【JAVA】使用jacob生成的html,关于文字乱码处理,图片无法显示等问题。