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是以层次结构组织的节点或信息片断的集合.这 ...
随机推荐
- Request对象和Response对象 JsonResponse对象 和 Django shortcut functions 和QueryDict对象
request request属性 属性: django将请求报文中的请求行.头部信息.内容主体封装成 HttpRequest 类中的属性. 除了特殊说明的之外,其他均为只读的. ''' 0.Http ...
- 震惊!!!源程序特征统计程序——基于python getopt库
项目github地址:https://github.com/holidaysss/WC PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟 ...
- 使用linux命令行调整非图形界面分辨率
第一步,调整linux内核显示参数: 打开内核菜单配置列表文件: vi /boot/grub/menu.lst 或者 vi /boot/grub/gurb.conf 在kernel设置一行末尾添加: ...
- postman中常见的错误
get请求400错误,post请求405错误 (2016-08-31 17:19:27)转载▼出现错误原因,后台接收参数part使用的是List,参数的属性对不上,传参使用的类型是String,改为p ...
- PHP错误日志和内存查看(转)
本篇文章给大家带来的内容是关于PHP错误日志和内存查看的方法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.通过命令查看服务器上一共开了多少的 php-cgi 进程: ...
- 远程过程调用发展历程 WebAPI GRPC Hprose
作者:马秉尧链接:https://www.zhihu.com/question/23299132/answer/109978084来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- vue插件
Vue.js提供了插件机制,可以在全局添加一些功能.它们可以简单到几个方法.属性,也可以很复杂,比如一整套组件库. 注册插件需要一个公开的方法install,它的第一个参数是Vue构造器,第二个参数是 ...
- Python Redis中Scan遇到问题
在项目启动中需要删除redis原先相同key储存的值,所以使用scan_iter来便利相关的key,并删除. 这里需要注意两个性能问题 1. scan_iter的模糊匹配的过滤器要正确,否则会带来很多 ...
- Spring @EventListener 异步中使用condition的问题
@EventListener是spring在4.2+推出的更好的使用spring事件架构的方式,并且异步方式也很好设定 但是在spring4.2.7版本上使用eventlistener的conditi ...
- JavaSE学习(二):进制转换—数据类型转换—Java运算符
一.进制转换 1.1 其他进制转十进制(以十六进制为例): 十六进制范围:0-9, A-F对应数字10-15 2A7E(16) = 14*16(0) +7*16(1) + 10*16(2) + ...