dom4j的用法 (解析xml)

标签: dom4j
4人阅读 评论(0) 收藏 举报

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>  
查看评论

iOS网络编程-AFNetworking | JSON、XML解析

本课程由扣丁学堂教学总监郭宏志老师讲授,主要讲解iOS开发中网络编程这一专题,内容包括:Nsurlconnection 网络编程、开源网络框架、Xml文件解析、Json文件解析等知识。
  • 2015年11月25日 16:48

Dom4j解析xml文件的简单快速用法

1. 介绍使用Dom4j解析xml文件,需要用到的jar包是:dom4j-1.6.1.jar,下载地址:点我前往以读取以下test.xml测试文件为例简单说明其用法: 此文件是WebXml.com....
  • fxjzzyo
  • fxjzzyo
  • 2017-07-09 19:20:54
  • 277

JAVA代码-使用DOM4J解析复杂XML文件

转载自:点击打开链接今天项目需要完成一个xml数据导入的功能。第一步就是解析上传的xml文件。本来想用SAX来解析的,可是看到要导入的xml文件,心一下子就凉了,文件节点格式没有丝毫的规律可言,退而求...
  • Coder_lp
  • Coder_lp
  • 2018-01-18 17:30:05
  • 254

使用Dom4j解析xml文件---SAXReader方式

张三 A公司 (021)5555666 安徽省 李四 B公司 (021)5...
  • Geek_ymv
  • Geek_ymv
  • 2014-08-22 17:29:36
  • 798

使用Dom4j解析XML案例

.sida.xml描述四大名著的操作,文件内容如下 [html] view plain copy xml version="1.0" encoding="UTF-8"?>   ...
  • hebo5207_
  • hebo5207_
  • 2017-02-19 14:22:54
  • 980

dom4j解析xml

  • 2011年01月04日 17:04
  • 809B
  • 下载

Java DOM4J 方式解析XML文件

Java DOM4J 方式解析XML文件 ,Java解析xml文件Dom4j方式
  • lz527657138
  • lz527657138
  • 2017-04-25 10:11:30
  • 826

使用dom4j解析器解析xml文件

解析xml文件目前用得最多的就是Dom4j解析器,被很多企业认可,在这之前还有w3c发布的dom解析器,但后来逐渐被弃用了,Dmo4j解析器使用起来更简单,逻辑更清晰,备受开发者喜爱。 Dom4j解...
  • weixin_36146275
  • weixin_36146275
  • 2017-02-21 19:53:29
  • 3953

dom4j 学习 -- 封装dom4j工具类+如何使用dom4j解析

今天项目里面用到dom4j解析xml数据,特地整理了一下封装dom4j的工具方法,使用dom4j来解析xml文档. 首先是封装了dom4j的工具类: package myDOM4J; imp...
  • W3Chhhhhh
  • W3Chhhhhh
  • 2016-12-08 21:44:21
  • 2621

dom4j解析soap xml

做项目,客户给的webService接口,传入一个用户名,来获取数据。先用的RPCServiceClient serviceClient = new RPCServiceClient(); Opt...
  • Myc_CSDN
  • Myc_CSDN
  • 2017-01-18 09:06:26
  • 1681
    个人资料
    等级:
    访问量: 59
    积分: 26
    排名: 206万+
    文章分类
    文章存档