Java解析XML之Dom4j
Java解析XML文件的方法有多种,个人感觉最常用的是使用Dom4j来解析XML文件。下面就简单介绍下Dom4j的基础使用。
Dom4j需要jar包的支持,大家可以从网络上下载,如dom4j-1.6.1.jar;
下载好JAR包以后,只要导入我们的工程就可以使用了,Java WEB工程导入路径为:WebRoot/WEB-INF/lib目录下;
代码示例:
一、查看xml文档基础操作(以封装方法展示):
public static void run() throws Exception {
//获取Dom4j解析器对象
SAXReader reader = new SAXReader();
//读取XML,返回Document对象
Document document = reader.read("src/Demo.xml");
//获取根节点
Element rootElement = document.getRootElement();
//获取根节点下的全部名称为book的元素,得到元素集合
List<Element> elements = rootElement.elements("book");
//选择某一个元素
Element shu2 = elements.get(1);
//获取元素下的摸个目标元素
Element name2 = shu2.element("name");
//获取元素的文本内容 getText()
System.out.print("书名是:"+name2.getText());
}
二、插入一个xml元素并回写到xml文件的操作
public static void run2() throws Exception {
//获取Dom4j解析器对象
SAXReader reader = new SAXReader();
//读取XML,返回Document对象
Document document = reader.read("src/Demo.xml");
//获取根节点
Element rootElement = document.getRootElement();
//获取目标节点元素
Element shu1 = (Element) rootElement.elements("book").get(1);
//添加元素(addElement)和文本(addText);添加属性(addAttribute)
shu1.addElement("prise").addText("99.8 yuan").addAttribute("属性名", "属性值");
//设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat()
OutputFormat format = OutputFormat.createPrettyPrint();
//设置输出编码
format.setEncoding("utf-8");
//创建回写类,并指定xml路径与写入格式
XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format);
//回写
writer.write(document);
//成功
System.out.print("ok,mylydg");
}
三、在指定位置插入元素的操作
public static void run3() throws Exception {
//获取Dom4j解析器对象
SAXReader reader = new SAXReader();
//读取XML,返回Document对象
Document document = reader.read("src/Demo.xml");
//获取根节点
Element rootElement = document.getRootElement();
//获取目标节点元素
Element book = (Element) rootElement.elements("shu").get(1);
//通过DocumentHelper创建一个元素
Element prise = DocumentHelper.createElement("prise");
//设置元素文本
prise.setText("99.8 yuan");
//获得目标元素的子元素集合
List<Element> elements = book.elements();
//通过下标添加元素到指定集合位置
elements.add(0, prise);
//设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat()
OutputFormat format = OutputFormat.createPrettyPrint();
//创建回写类,并指定xml路径与写入格式
XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format);
//回写
writer.write(document);
//关闭流
writer.close();
//成功
System.out.print("ok,mylydg");
}
四、删除和更新的操作
public static void run4() throws Exception {
//获取Dom4j解析器对象
SAXReader reader = new SAXReader();
//读取XML,返回Document对象
Document document = reader.read("src/Demo.xml");
//获取根节点
Element rootElement = document.getRootElement();
//获取目标节点元素
Element book = (Element) rootElement.elements("shu").get(1);
//获取要删除的元素
Element prise = book.element("prise");
//删除
book.remove(prise);
//获取要更新的元素
Element name = book.element("name");
//更新
name.setText("new name");
//设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat()
OutputFormat format = OutputFormat.createPrettyPrint();
//创建回写类,并指定xml路径与写入格式
XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format);
//回写
writer.write(document);
//关闭流
writer.close();
//成功
System.out.print("ok,mylydg");
}
以上就是Dom4j对xml解析的基本使用方法。
Java解析XML之Dom4j的更多相关文章
- java 解析xml(dom4j.jar)
先导入jar包 <?xml version="1.0" encoding="UTF-8"?> <companys> <compan ...
- (补)Java解析XML之dom4j
上次记得忘了记最流行的dom4j方法了,用的还是上次的那个XML文件 注:需要添加dom4j.jar文件 package com.xujingyang.dom4j; import org.dom4j. ...
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...
- JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)
1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...
- XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax
本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...
- java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol
java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol 完整错误信息: org.dom4j.Document ...
- java解析xml的三种方法
java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...
- Java 解析 XML
Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...
- JAVA解析XML的四种方式
java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...
随机推荐
- 打印sql
$query=$sql->where([ 'test_id'=>24, 'name'=>'小洋' ]); //打印sql; $query->prepare(Yii::$app- ...
- 1(2)IO流---字节流
一.分类 字节流(不适用于文本) InputStream OutputStream 字符流 Reader Writer 二.字节流 1.概述 InputStream 字节输入流,是被读的,抽 ...
- concat_ws 使用在hive spark-sql上的区别
concat_ws() 在hive中,被连接对象必须为string或者array<string>,否则报错如下: hive> select concat_ws(',',unix_ti ...
- Python学习笔记,day5
Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...
- for循环的运算 改变循环的控制流 死循环 遍历数组 定义方法 有名函数匿名函数 定义函数的方法取值 与 自己创建函数取值 局部与全局变量 次幂/随机数/取绝对值/向上取整/平方根
今天学习的是for循环,对for循环的运算有了理解. document.write(" ")里的内容在网页上展示出来 有名函数非常重要!!!!!!!!!!!!!!!!!!!!!并且 ...
- 学习笔记CB013: TensorFlow、TensorBoard、seq2seq
tensorflow基于图结构深度学习框架,内部通过session实现图和计算内核交互. tensorflow基本数学运算用法. import tensorflow as tf sess = tf.S ...
- scipy 的K-means
#导入相应的包 import scipy import scipy.cluster.hierarchy as sch from scipy.cluster.vq import vq,kmeans,wh ...
- 实现自己的MVC AJAX框架计划
最近看了一下设计自己框架的文章,所以也想自己去实现一个小框架,用于以后的项目中,只求方便, 需要参考各位前辈的代码,或者直接copy过来为我所用,哈哈,想想都开心. 不过,要写个好的框架肯定不容易,现 ...
- LOJ 2551 「JSOI2018」列队——主席树+二分
题目:https://loj.ac/problem/2551 答案是排序后依次走到 K ~ K+r-l . 想维护一个区间排序后的结果,使得可以在上面二分.求和:二分可以知道贡献是正还是负. 于是想用 ...
- 【转】百度UEditor控件中的map组件不支持https使用的问题解决
原文地址:https://blog.csdn.net/stacy06/article/details/82626363 最近项目部署到了https环境下,使用的UEditor富文本编辑器中的map组件 ...