Aqq的成神之路

我是菜鸟我怕谁

dom4j的用法 (解析xml)

1、待解析的XML文件:

[html] view plain copy
  1. <span style="font-size:14px;">  
  2. <?xml version="1.0" encoding="utf-8"?>  
  3.   
  4. <students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.         xmlns="http://www.itcast.cn/xml"  
  6.             xsi:schemaLocation="http://www.itcast.cn/xml students.xsd">  
  7.     <student number="ITCAST_1001">  
  8.       <name>zhangSan</name>  
  9.       <age>23</age>  
  10.       <sex>male</sex>  
  11.     </student>  
  12. </students>  
  13.   
  14. </span>  

2、用DOM4J实现增删改查:
[java] view plain copy
  1. <span style="font-size:14px;">  
  2. public class Demo3 {  
  3.   
  4.     @Test  
  5.     public void method1() throws Exception {  
  6.         // 创建解析器  
  7.         SAXReader reader = new SAXReader();//这个是用来读取文件内容的  
  8.         Document doc = reader.read(new File("students.xml")); //指定要读取的文件  
  9.         //System.out.println(doc.asXML()); //打印出文件  
  10.     }  
  11.       
  12.     //实现对XML文件的复制  
  13.     @Test  
  14.     public void method2() throws Exception {  
  15.         // 得到Document  
  16.         SAXReader reader = new SAXReader();  
  17.         Document doc = reader.read(new File("students.xml"));  
  18.           
  19.         // 保存Document,指定将写入的目的文件(复制功能)  
  20.         XMLWriter writer = new XMLWriter(new FileOutputStream("students_copy.xml"));  
  21.         writer.write(doc); //开始写入  
  22.     }  
  23.       
  24.     //遍历Document  
  25.     @Test  
  26.     public void method3() throws Exception {  
  27.         // 要遍历文档,首先要得到Document对象  
  28.         SAXReader reader = new SAXReader();  
  29.         Document doc = reader.read(new File("students.xml"));  
  30.   
  31.         //获取根元素  
  32.         Element root = doc.getRootElement();  
  33.         //获取根元素中所有student元素  
  34.         List<Element> stuEleList = root.elements("student");  
  35.         // 循环遍历所有学生元素  
  36.         for(Element stuEle : stuEleList) {  
  37.             //获取学生元素的number  
  38.             String number = stuEle.attributeValue("number");  
  39.             //获取学生元素名为name的子元素的文本内容  
  40.             String name = stuEle.elementText("name");  
  41.             //获取学生元素名为age的子元素的文本内容  
  42.             String age = stuEle.elementText("age");  
  43.             //获取学生元素名为sex的子元素的文本内容  
  44.             String sex = stuEle.elementText("sex");       
  45.             System.out.println(number + ", " + name + ", " + age + ", " + sex);  
  46.         }  
  47.     }  
  48.       
  49.     //添加元素  
  50.     @Test  
  51.     public void method4() throws Exception {  
  52.         // 得到Document  
  53.         SAXReader reader = new SAXReader();  
  54.         Document doc = reader.read(new File("src/students.xml"));  
  55.   
  56.         //获取root元素  
  57.         Element root = doc.getRootElement();  
  58.         Element stuEle = root.addElement("student"); //添加了student元素  
  59.         // 给stuEle添加属性,名为number,值为1003  
  60.         stuEle.addAttribute("number""1003");   
  61.         // 分别为stuEle添加名为name、age、sex的子元素,并为子元素设置文本内容  
  62.         stuEle.addElement("name").setText("wangWu");  
  63.         stuEle.addElement("age").setText("18");  
  64.         stuEle.addElement("sex").setText("male");  
  65.           
  66.         // 设置保存的格式化器  1. \t,使用什么来完成缩进 2. true, 是否要添加换行  
  67.         OutputFormat format = new OutputFormat("\t"true);  
  68.         format.setTrimText(true); //去掉空白  
  69.         // 在创建Writer时,指定格式化器  
  70.         XMLWriter writer = new XMLWriter(new FileOutputStream("src/students_copy.xml"), format);  
  71.         writer.write(doc);  
  72.     }  
  73.       
  74.     //修改元素  
  75.     @Test  
  76.     public void method5() throws Exception {  
  77.   
  78.         // 得到Document  
  79.         SAXReader reader = new SAXReader();  
  80.         Document doc = reader.read(new File("src/students_copy.xml"));  
  81.   
  82.         //使用XPath找到符合条件的元素  
  83.         // 查询student元素,条件是number属性的值为1003  
  84.         Element stuEle = (Element) doc.selectSingleNode("//student[@number='ITCAST_1003']");  
  85.         //修改stuEle的age子元素内容为81  
  86.         stuEle.element("age").setText("81");  
  87.         //修改stuEle的sex子元素的内容为female  
  88.         stuEle.element("sex").setText("female");  
  89.   
  90.     }  
  91.       
  92.     //删除元素  
  93.     @Test  
  94.     public void method6() throws Exception {  
  95.   
  96.         // 得到Document  
  97.         SAXReader reader = new SAXReader();  
  98.         Document doc = reader.read(new File("src/students_copy.xml"));  
  99.           
  100.         // 查找student元素,条件是name子元素的文本内容为wangWu  
  101.         Element stuEle = (Element) doc.selectSingleNode("//student[name='wangWu']");  
  102.           
  103.         // 2. 获取父元素,使用父元素删除指定子元素  
  104.         stuEle.getParent().remove(stuEle);  
  105.     }  
  106. }  
  107.  </span>  
阅读更多
文章标签: dom4j
上一篇java 解析xml文件的几种方式
下一篇MD5 升级优化 加盐(Java)
想对作者说点什么? 我来说一句

dom4j解析XML所需jar包

2017年10月13日 480KB 下载

使用Dom4j解析复杂的XML文件

2009年02月19日 291KB 下载

使用dom4j进行解析XML

2009年07月11日 283KB 下载

dom4j解析xml

2011年01月04日 809B 下载

Dom4j解析XML》.pdf

2011年05月16日 301KB 下载

使用 dom4j 解析 XML

2011年08月21日 144KB 下载

使用dom4j解析XML

2011年07月29日 82KB 下载

DOM4J解析XML时DTD路径问题

2010年06月04日 2KB 下载

dom4j解析xml实例

2011年04月06日 522KB 下载

没有更多推荐了,返回首页

关闭
关闭