文档章节

XML--dom4j解析

H
 HoneyHoney
发布于 2015/06/13 22:34
字数 335
阅读 15
收藏 0

将dom4j里面的jar包放到项目中,buildpath一下

    核心类

      1: org.dom4j...SaxReader
      2: org.dom4j...Document

读取xml中的有用的数据:

public class Demo01 {
 @Test
 public void test1() throws Exception{
  //1:声明读取文件的对象
  SAXReader sax = new SAXReader();
  //2:读取文件
  Document dom = sax.read("./files/users.xml");
  //3:获取根元素
  Element root = dom.getRootElement();
  //4:读取里面的节点
  List<Element> users = root.elements();
  for(Element e:users){
   String id = e.attributeValue("id");
   String name = e.element("name").getText();
   String age = e.elementText("age");
   System.err.println(id+","+name+","+age);
  }
 }
}

增加节点:         org.dom4j.XMLWriter - 将内存中的dom保存到文件中去。

 @Test
 public void save() throws Exception{
  SAXReader sax = new SAXReader();
  Document dom = sax.read("./files/users.xml");
  Element root = dom.getRootElement();
  
  //添加子元素
  Element userElement = root.addElement("user");
  userElement.addAttribute("id","U100");
  userElement.addElement("name").setText("马六");
  userElement.addElement("age").setText("34");
  
 //保存
  XMLWriter w = new XMLWriter(new FileOutputStream("./files/users.xml"));
  w.write(dom);
 //  OutputFormat format = OutputFormat.createPrettyPrint();  
 // 利用格式化类对编码进行设置  
 //  format.setEncoding("GBK");  
 // FileOutputStream output = new FileOutputStream(new File(path +  
 //            "books1.xml"));  
 // XMLWriter writer = new XMLWriter(output, format);  
 // writer.write(doc);  
 // writer.flush();  
 // writer.close();  
 }

删除节点:

 @Test
 public void del() throws Exception{
  SAXReader sax = new SAXReader();
  Document dom = sax.read("./files/users.xml");
  Element root = dom.getRootElement();
  
  List<Element> list =  root.elements();
  Element last = list.get(list.size()-1);
  //删除
  last.getParent().remove(last);
  //保存
  XMLWriter w = new XMLWriter(new FileOutputStream("./files/users.xml"));
  w.write(dom);
 }

更改节点: 

@Test
 public void del() throws Exception{
  SAXReader sax = new SAXReader();
  Document dom = sax.read("./files/users.xml");
  Element root = dom.getRootElement();
  
  List<Element> list =  root.elements();
  Element last = list.get(list.size()-1);
  //更改
  //last.getElementsByTagName("name").item(0).setTextContent("王五");
  //last.getElementsByTagName("age").item(0).setTextContent("15");
  //保存
  XMLWriter w = new XMLWriter(new FileOutputStream("./files/users.xml"));
  w.write(dom);
 }





© 著作权归作者所有

共有 人打赏支持
H
粉丝 0
博文 21
码字总数 6313
作品 0
济南
私信 提问
Android 创建与解析XML(五)—— Dom4j方式

1、Dom4j概述 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 fo......

长平狐
2013/01/06
104
0
XML生成和解析

1、DOM方式解析XML 给予DOM的解析方式,是把整个XML文档加载到内存,转化成DOM树,可以随机的访问DOM树的任何数据,速度快、比较灵活,但是消耗资源比较多,不适用大的xml文档解析,测试超过...

祁猛
2016/10/19
24
0
java解析xml的四种方法汇总

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM、SAX、JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SA...

LYQ1990
2017/10/26
0
0
xml java应用(DOM、SAX、JDOM、DOM4j)简介比较

dom是解析xml的底层接口之一(另一种是sax) 而jdom和dom4j则是基于底层api的更高级封装 dom是通用的,而jdom和dom4j则是面向java语言的 DOM 是用与平台和语言无关的方式表示 XML 文档的官方 ...

liangyx
2012/12/20
0
0
dom4j的使用及常见问题

相信作为一个开发人员应该对XML与JSON 非常熟悉。关于两者的介绍与区别网上已经有很多资料,java对于XML的解析也有很多工具包,主要解析的方式有三种: 1.DOM解析方式:适用于解析小型XML文件...

Half_candy
2015/09/20
289
0

没有更多内容

加载失败,请刷新页面

加载更多

Ubuntu18.04 安装MySQL

1.安装MySQL sudo apt-get install mysql-server 2.配置MySQL sudo mysql_secure_installation 3.设置MySQL非root用户 设置原因:配置过程为系统root权限,在构建MySQL连接时出现错误:ERROR...

AI_SKI
今天
3
0
3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)

3.6-3.7 rc脚本(start、stop和status方法) #!/usr/bin/env python# -*- coding: utf-8 -*-# [@Version](https://my.oschina.net/u/931210) : python 2.7# [@Time](https://my.oschina.......

隐匿的蚂蚁
今天
3
0
Cnn学习相关博客

CNN卷积神经网络原理讲解+图片识别应用(附源码) 笨方法学习CNN图像识别系列 深度学习图像识别项目(中):Keras和卷积神经网络(CNN) 卷积神经网络模型部署到移动设备 使用CNN神经网络进行...

-九天-
昨天
5
0
flutter 底部输入框 聊天输入框 Flexible

想在页面底部放个输入框,结果键盘一直遮住了,原来是布局问题 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("评论"), ...

大灰狼wow
昨天
4
0
Kernel I2C子系统

备注:所有图片来源于网络 1,I2C协议: 物理拓扑: I2C总线由两根信号线组成,一条是时钟信号线SCL,一条是数据信号线SDA。一条I2C总线可以接多个设备,每个设备都接入I2C总线的SCL和SDA。I...

yepanl
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部