来源:自学PHP网 时间:2015-04-14 14:51 作者: 阅读:次
[导读] 需要导入dom4j的包,以提供dom4j的支持。package day06_parser dom4j; **dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的DOM4J是dom4j org出品的一个开源XML解析包,它的网站中这样定义:Dom4j...
需要导入dom4j的包,以提供dom4j的支持。 package day06_parser.dom4j; /**dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的 DOM4J是dom4j.org出品的一个开源XML解析包,它的网站中这样定义: Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP. Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。 它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。 在java的基本api中常用的解析xml的方式是Jaxp解析的DOM,SAX两种方式。 可以这样理解:dom4j是第三方为java实现的xml的解析方式。 ===================================================== XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集) 文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。 dom4j的依赖包中提供了xpath的方式来寻找文档中的节点。 下面的实例: dom4j的sax方式的解析。 * @author Leon */ import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import org.apache.commons.beanutils.BeanUtils; 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; import day06_parser.domain.Book; public class TestDom4j { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub demo03(); } //获取document public static void demo01() throws Exception{ //1.dom4j方式获取xml的解析器 SAXReader saxReader=new SAXReader(); //2. 从文件读取XML,输入文件名,返回XML文档 Document document =saxReader.read(new File("db.xml")); System.out.println(document); } //增加-创建新的元素 public static void demo02() throws Exception{ //1.dom4j方式获取xml的解析器 SAXReader saxReader=new SAXReader(); //2. 从文件读取XML,输入文件名,返回XML文档 Document document =saxReader.read(new File("db.xml")); //必须获得根元素 Element rootElement=document.getRootElement(); //创建新的元素 Element newbookElement=DocumentHelper.createElement("book"); //添加属性 newbookElement.addAttribute("id", "b004"); newbookElement.addElement("title").setText("javaee技术学习"); //添加关系 rootElement.add(newbookElement); //==========将做过修改的document对象回写到xml文件中=============== FileOutputStream out = new FileOutputStream(new File("db.xml")); //4 回写 XMLWriter xmlWriter = new XMLWriter(out,OutputFormat.createPrettyPrint()); //准备往哪里写? xmlWriter.write(document); //写的是什么 xmlWriter.close(); System.out.println("写入完成"); } //删除元素两种方式:1.根据更元素,遍历,符合条件的做删除2.xpath方式直接获取某个元素 public static void demo03() throws Exception{ //1.dom4j方式获取xml的解析器 SAXReader saxReader=new SAXReader(); //2. 从文件读取XML,输入文件名,返回XML文档 Document document =saxReader.read(new File("db.xml")); //获取根元素 Element rootElement=document.getRootElement(); //用第二种方式删除元素-xpath String id="b004"; Node toDeleteNode=document.selectSingleNode("/books/book[@id='"+id+"']");//注意此处字符串的拼接 //进行删除操作,思想还是一样,由自己找到父节点,由父节点再删除自己 toDeleteNode.getParent().remove(toDeleteNode); //回写 //目的地-----文件字符输出流 FileOutputStream out=new FileOutputStream(new File("db.xml")); XMLWriter xmlWriter=new XMLWriter(out,OutputFormat.createPrettyPrint() ); xmlWriter.write(document); xmlWriter.close(); System.out.println("回写完成"); } //遍历xml将book元素以javabean的方式存储。同时这里面使用BeanUtils工具类 public static void demo04() throws Exception{ // 遍历 --封装到javabean List
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com