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是以层次结构组织的节点或信息片断的集合.这 ...
随机推荐
- 基于CDH5.12安装Kylin及官方用例测试
1 kylin 简介 Apache Kylin是2013年由eBay 在上海的一个中国工程师团队发起的.基于Hadoop大数据平台的开源 OLAP引擎,它采用多维立方体预计算技术,利用空间换时间的方法 ...
- 代码中设置color的selector
//应该用getColorStateList这种方式 xml中设置时直接color引用就可以了 textView.setTextColor(getResources().getColorStateLi ...
- 判断某个元素是否存在于某个 js 数组中
1.正则表达式 Array.prototype.in_array=function(e){ var r=new RegExp(','+e+','); return (r.test(','+this.j ...
- hello1实例的分析
JSF简介一. 什么是 JSF:JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架.它提供了一种以组件为中心来开发 Java Web 用户界面的方法 ...
- concat_ws 使用在hive spark-sql上的区别
concat_ws() 在hive中,被连接对象必须为string或者array<string>,否则报错如下: hive> select concat_ws(',',unix_ti ...
- VM安装centos7
镜像:笔者采用的是CentOS-7-x86_64-Minimal-1810.iso版本 1.创建新的虚拟机 2.典型安装与自定义安装 典型安装:VMwear会将主流的配置应用在虚拟机的操作系统上,对于 ...
- 学习笔记TF057:TensorFlow MNIST,卷积神经网络、循环神经网络、无监督学习
MNIST 卷积神经网络.https://github.com/nlintz/TensorFlow-Tutorials/blob/master/05_convolutional_net.py .Ten ...
- InsertSort
#include <bits/stdc++.h> using namespace std; #define MAXSIZE 200000 typedef int KeyType; type ...
- 1.搭建Angular2项目
简述:搭建angular2的开发环境,网上已经有许多教程,不过都是window系统下的教程,我本人使用的是linux系统,搭建环境的过程也稍微比前者麻烦了一点,可参考本人的另一篇文章Linux系统下安 ...
- VS调试快捷键配置更改
VS进行调试时,默认情况下需按下Fn+F5等组合按键,手短的用起来很不便利 如何去掉组合键只按下F5? 解决:即按下Fn+Esc,然后就可以直接按下F1-F12使用VS的快捷键,如果想回到组合键也是同 ...