【xml之Dom4j解析】
来源:互联网 发布:删除淘宝差评的链接 编辑:程序博客网 时间:2024/04/28 20:35
book.xml
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE 书架 SYSTEM "book.dtd"><书架> <书> <书名 name="xxx">Java就业培训教程</书名> <作者>张孝祥</作者> </书> <书> <书名 name="yyy">JavaScript网页开发</书名> <作者>5</作者> <售价>28.00元</售价> </书></书架>
demo.java
import java.io.File;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.OutputStreamWriter;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentHelper;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 demo1 { //读第 1本书的信息 @Test public void read() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read("book.xml"); Element book= (Element) document.getRootElement().elements("书").get(0); String value=book.element("书名").getText(); String attributeValue=book.element("书名").attributeValue("name"); System.out.println(value +";"+attributeValue); } //在第一本上添加一个新的售价 @Test public void add() throws Exception{ SAXReader reader=new SAXReader(); Document document=reader.read(new File("book.xml")); Element book=document.getRootElement().element("书"); book.addElement("售价").setText("222"); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("gb2312"); XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"), format); writer.write(document); writer.close(); } //在第一本书指定位置上添加一个新的售价,更改List集合 @Test public void add2() throws Exception{ SAXReader reader=new SAXReader(); Document document=reader.read(new File("book.xml")); Element book=document.getRootElement().element("书"); List list=book.elements();//[书名,作者,售价] Element price=DocumentHelper.createElement("售价0"); price.setText("309元"); list.add(0,price); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("gb2312"); XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"), format); writer.write(document); writer.close(); } //删除上面的节点 @Test public void delete() throws Exception { SAXReader reader=new SAXReader(); Document document=reader.read(new File("book.xml")); Element price=document.getRootElement().element("书").element("售价"); price.getParent().remove(price); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("gb2312"); XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"), format); writer.write(document); writer.close(); } //更新节点 @Test public void update() throws Exception{ SAXReader reader=new SAXReader(); Document document=reader.read(new File("book.xml")); Element book=(Element) document.getRootElement().elements("书").get(1); book.element("作者").setText("5"); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("gb2312"); XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"), format); writer.write(document); writer.close(); } }
解决乱码问题:
// format.setEncoding("gb2312"); // XMLWriter writer=new XMLWriter(new FileWriter("book.xml"), format);//因为FileWriter的默认编码是gb2312,所以format的编码格式只能设置成gb2312 // format.setEncoding("utf-8"); //gb2312 // XMLWriter writer=new XMLWriter(new OutputStreamWriter(new FileOutputStream("book.xml"),"utf-8"), format);//gb2312 // format.setEncoding("utf-8");//gb2312 // XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"), format);//FileOutputStream会去查format的编码
0 0
- 解析xml之--DOM4J
- XML解析之DOM4J
- 【xml之Dom4j解析】
- XML解析之DOM4J
- 解析XML之DOM4J
- xml解析之DOM4J
- XML解析之dom4j
- XML解析之DOM4J
- XML解析之DOM4J
- xml解析之Dom4J
- XML解析之DOM4J
- xml之DOM4J解析
- xml解析之DOM4j解析
- XML解析之Dom4j解析
- XML解析之dom4j解析
- xml解析之dom4j解析
- XML——XML解析之DOM4J
- Dom4j解析XML学习之简单解析
- More is better 1856
- 树状数组 LA 4329 亚洲赛北京赛区题
- Hadoop Pipes编程之C++实现WordCount
- HDU 2066 一个人的旅行.
- csv文件utf8编码后windows操作系统(中文GBK环境)下乱码
- 【xml之Dom4j解析】
- 谈自我提升
- 微信公众帐号开发教程第8篇-文本消息中使用网页超链接
- Android源码50例汇总,欢迎各位下载
- Oracle 数据库基础 出现invalid username/password; logon denied错误解决方案
- 在Android4.0中Contacts拨号盘界面剖析(源码)
- Redis学习笔记1-Redis的介绍和认识
- LBP特征理解
- 网络图片查看