首页 > 代码库 > (转)Dom4J解析
(转)Dom4J解析
xml文档:
<?xml version="1.0" encoding="UTF-8"?><书架> <书 出版社="清华"> <书名>Java就业培训教程</书名> <出版社>华</出版社> <出版社>清华</出版社> <售价>50.00元</售价> <内部价>40.99元</内部价> <作者>刘清华</作者> </书> <书> <书名>JavaScript网</书名> <作者>张孝祥</作者> <售价>28.00元</售价> </书> </书架>
代码演示:
package test.java;/** * @author lxw * @date 2016年9月6日 下午10:01:55 * @describe */import java.io.FileOutputStream;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter; public class Dom4JParser { //测试 public static void main(String[] args) throws Exception { test08(); } //1、获得某个节点的具体内容 >> 获取第2本书的 【书名】 public static void test01() throws Exception{ //1.获取解析器 SAXReader reader = new SAXReader(); //2.加载XML文档 Document document = reader.read("src/book.xml"); //3.获取根元素 Element root = document.getRootElement(); //4.找第二本书的元素 Element book = (Element)root.elements("书").get(1); Element name = book.element("书名"); // 测试+打印 System.out.println("第2本书的书名是:"+name.getText()); } //2、遍历所有的元素节点,打印元素的名称 public static void test02() throws Exception{ SAXReader reader = new SAXReader(); Document document = reader.read("src/book.xml"); Element root = document.getRootElement(); treeWalk(root); } //2.1 递归遍历 public static void treeWalk(Element element){ //打印元素的名字 System.out.println(element.getName()); //获取该元素,孩子Node的个数 int size = element.nodeCount(); //循环遍历 for (int i = 0; i < size; i++) { //取出第i个 孩子节点 Node node = element.node(i); if (node.getNodeType() == Node.ELEMENT_NODE) { treeWalk((Element)node); } } } //3.修改xml的主体内容 》》修改第一本书的【作者】 public static void test03() throws Exception{ SAXReader reader = new SAXReader(); Document document = reader.read("src/book.xml"); Element root = document.getRootElement(); //1.找到作者 Element element = (Element)root.elements("书").get(0); //2.修改 主题内容 element.element("作者").setText("刘清华"); //3.更新XML文档 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8");//设置格式化编码 //默认编码就是 【UTF-8】 XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format); writer.write(document); writer.close(); } //4.增加一个节点 》》第1本书 增加 【内部价】 public static void test04() throws Exception{ SAXReader reader = new SAXReader(); Document document = reader.read("src/book.xml"); Element root = document.getRootElement(); //1.找到第一本书 Element book1 = root.element("书"); //默认 是 第1本 ,相当于 elements(“书”).get(0); //2.新建一个 节点 Element price = DocumentHelper.createElement("作者"); price.setText("sts"); //3.添加 book1.add(price); //4.更新XML文档 //格式化器,使XML更规范 OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format); writer.write(document); writer.close(); } //5.在指定位置添加一个元素节点 》》 第一本书,作者前,增加 【出版社】 public static void test05() throws Exception{ SAXReader reader = new SAXReader(); Document document = reader.read("src/book.xml"); Element root = document.getRootElement(); //1.找到第一本书的集合列表 List book1 = root.element("书").elements(); //默认 是 第1本 ,相当于 elements(“书”).get(0); //2.新建一个 节点 Element chuban = DocumentHelper.createElement("出版社"); chuban.setText("华"); //3.在list中指定位置,添加 book1.add(1,chuban); //4.更新XML文档 //格式化器,使XML更规范 OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format); writer.write(document); writer.close(); } //6.删除指定元素节点 private static void test06()throws Exception{ SAXReader reader = new SAXReader(); Document document = reader.read("src/book.xml"); Element root = document.getRootElement(); //1.找到第一本书的作者 Element book1 = root.element("书"); Element author = book1.element("作者"); //2.由父亲删儿子 book1.remove(author); //3.更新XML文档 //格式化器,使XML更规范 OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format); writer.write(document); writer.close(); } //7.对元素属性的操作 private static void test07()throws Exception{ SAXReader reader = new SAXReader(); Document document = reader.read("src/book.xml"); Element root = document.getRootElement(); //1.找到第一本书 Element book1 = root.element("书"); //2.显示属性的内容 System.out.println(book1.attributeValue("出版社")); } //8.将xml转换成String private static void test08() throws Exception{ SAXReader reader = new SAXReader(); Document document = reader.read("src/book.xml"); //XML转换成字符串 String text = document.asXML(); System.out.println(text); } //9.将String 转换成为 xml private static void test09() throws Exception{ String text = "<person><name>刘清华</name></person>"; Document document = DocumentHelper.parseText(text); //格式化器,使XML更规范 OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileOutputStream("D:/test.xml"),format); writer.write(document); writer.close(); }}
(转)Dom4J解析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。