java 读写xml dom4j
2016-06-03 13:49
316 查看
java里经常会碰到解析xml的需求,除了官方的dom和sax解析,还有第三方提供的对xml的解析,比如dom4j,这里就写个简单的demo
读取的xml文件
tips:
dom4j真的非常强大,解析和生成xml,只需要dom4j.jar这一个jar包!!!
附jar的下载,戳我
1.解析xml
/** * @Desc:遍历和取确定的标签值/属性 * @param xmlFilePath 读取的xml文件路径 */ public void showXMLResult(String xmlFilePath){ Element root = getRootElement(xmlFilePath); List<Element> childElements = root.elements(); // book标签 for (Element child : childElements) { // 已知属性名情况下 System.out.println("id: " + child.attributeValue("id")); String tid = child.element("title").attributeValue("tid"); System.out.println("tid:" + tid); // 已知子元素名的情况下 System.out.println("title" + child.elementText("title")); System.out.println("author" + child.elementText("author")); // 这行是为了格式化美观而存在 System.out.println(); } } /** * @Desc: 根据文件路径,获取根元素 * @param filePath 文件路径 * @return xml根元素 */ public Element getRootElement(String filePath){ SAXReader reader = new SAXReader(); File file = new File(filePath); try { return reader.read(file).getRootElement(); } catch (DocumentException e) { e.printStackTrace(); } return null; }
读取的xml文件
<?xml version="1.0" encoding="UTF-8"?> <books> <book id="001" b="b2"> <title tid="001_01">Harry Potter</title> <author>J K. Rowling</author> </book> <book id="002"> <title>Learning XML</title> <author>Erik T. Ray</author> </book> </books>
2.生成xml
/** * @Desc: 生成demo到指定路径 * @param targetPath 输出目录 */ public void writeXML(String targetPath) { Document doc = DocumentHelper.createDocument(); // 增加根节点 Element books = doc.addElement("books"); // 增加子元素 Element book1 = books.addElement("book"); Element title1 = book1.addElement("title"); Element author1 = book1.addElement("author"); Element book2 = books.addElement("book"); Element title2 = book2.addElement("title"); Element author2 = book2.addElement("author"); // 为子节点添加属性 book1.addAttribute("id", "001"); // 为元素添加内容 title1.setText("Harry Potter"); author1.setText("J K. Rowling"); book2.addAttribute("id", "002"); title2.setText("Learning XML"); author2.setText("Erik T. Ray"); // 实例化输出格式对象 OutputFormat format = OutputFormat.createPrettyPrint(); // 设置输出编码 format.setEncoding("UTF-8"); // 创建需要写入的File对象 File file = new File(targetPath + File.separator + "books.xml"); // 生成XMLWriter对象,构造函数中的参数为需要输出的文件流和格式 XMLWriter writer; try { writer = new XMLWriter(new FileOutputStream(file), format); // 开始写入,write方法中包含上面创建的Document对象 writer.write(doc); } catch (Exception e) { e.printStackTrace(); } }
tips:
dom4j真的非常强大,解析和生成xml,只需要dom4j.jar这一个jar包!!!
附jar的下载,戳我
相关文章推荐
- 希尔排序
- 编译java-cef
- MyEclipse创建第一个Servlet程序
- 《java入门第一季》之集合框架(Collection小儿子Set集合)
- 《java入门第一季》之集合框架(Collection小儿子Set集合)
- RxJava开发精要2-为什么是Observables?
- Java实现Excel导入数据库,数据库中的数据导入到Excel
- springmvc集成JSR-303的解析消息文件的默认实现浅析
- 选择排序和插入排序
- spring源码解析
- RxJava开发精要1-从.NET到RxJava
- 【第九章】 Spring的事务 之 9.2 事务管理器 ——跟我学spring3
- 15个易遗忘的java知识点
- 15个易遗忘的java知识点
- Spring MVC中一般类使用service
- java定时任务接口ScheduledExecutorService
- java定时任务(三):timerTask定时任务
- JAVA程序执行顺序
- [原创]java WEB学习笔记36:Java Bean 概述,及在JSP 中的使用,原理
- Java - 计蒜客 - 罗马数字转换成整数