dom4j 简单使用
1,需要用到dom4j的jar包。为了打开xml方便,设计一个简单的封装类。
package cn.com.gtmc.glaf2.util; import java.io.File;
import java.net.URISyntaxException; import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader; public class XmlUtil {
/**
* @param path
* 相对路径,相对于classes文件夹
* @return Document
* org.dom4j.Document
* @throws DocumentException
*/
public static Document getDocument(String path) throws DocumentException, URISyntaxException {
String filePath = XmlUtil.class.getClassLoader().getResource("").toURI().getPath() + path; SAXReader reader = new SAXReader();
Document doc = reader.read(new File(filePath));
return doc;
} }
2,使用的例子
<?xml version="1.0" encoding="UTF-8"?>
<workbook>
<worksheet index="0">
<cell src="Supplier.remark" target="B3" description="备注" />
</worksheet>
</workbook>
try {
Supplier obj = (Supplier)params.get("obj");
Document doc = XmlUtil.getDocument("excel\\supplier-import.xml");
Element root = doc.getRootElement();
List nodes = root.selectNodes("worksheet/cell");
Iterator it = nodes.iterator();
while(it.hasNext()) {
Element ele = (Element)it.next();
String src = ele.attributeValue("src");
String cellTarget = ele.attributeValue("target");
if(src != null && !"".equals(src)) {
String[] splits = src.split("\\.");
String className = splits[0];
String filedName = splits[1];
//。。。
}
}
} catch (Exception e) {
LOG.error("", e);
}
特别要注意,上面的Element.selectNodes方法,用到了XPath的语法,dom4j.jar里面是没有包含这个功能的,需要添加下面这个jar包(maven工程,非maven工程需要自己去下载),不然会报错。
<!-- https://mvnrepository.com/artifact/jaxen/jaxen -->
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1.6</version>
</dependency>
dom4j 简单使用的更多相关文章
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...
- dom4j+XPath
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- 解析Xml四种方法
关键字:Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath [引言] 目前在Java中用于解析XML的技术很多,主流的有DOM.SAX.JDOM.DOM4j,下文 ...
- java解析xml汇总(转自倾城幻影-Java解析xml汇总,链接:http://www.cnblogs.com/jiugehuanying/archive/2012/01/12/2320058.html)
[引言] 目前在Java中用于解析XML的技术很多,主流的有DOM.SAX.JDOM.DOM4j,下文主要介绍这4种解析XML文档技术的使用.优缺点及性能测试. [一.基础知识--扫盲] sax.do ...
- XXE攻防总结
1. 前言与XML格式相同的web漏洞,比较广泛的共有xpath注入.xml注入.soap注入.XXE四种. 2. XML相关的介绍针对xml语言,要明白两个特性:合法性与合理性.所谓合法性,是指语法 ...
- java解析xml汇总
[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...
- 简单用DOM4J结合XPATH解析XML
由于DOM4J在解析XML时只能一层一层解析,所以当XML文件层数过多时使用会很不方便,结合XPATH就可以直接获取到某个元素 使用dom4j支持xpath的操作的几种主要形式 第一种形式 ...
- dom4j解析器 基于dom4j的xpath技术 简单工厂设计模式 分层结构设计思想 SAX解析器 DOM编程
*1 dom4j解析器 1)CRUD的含义:CreateReadUpdateDelete增删查改 2)XML解析器有二类,分别是DOM和SAX(simple Api for xml). ...
- java 开发中 dom4j的简单用法
Java中处理XML的方式有很多种,个人任务dom4j还是比较好用的.下面介绍以下简单的使用方法 先把import补充上 import org.dom4j.Document; import org.d ...
随机推荐
- spring boot + jpa + bootstrap + thymeleaf 简单的增删改查Demo
对springboot和bootstrap初学者来说是一个不错Demo 下载地址:点击进入下载Demo 首页(http://localhost:8081) 增加 编辑 搜索
- BZOJ.5288.[AHOI/HNOI2018]游戏(思路 拓扑)
BZOJ LOJ 洛谷 考虑如何预处理每个点能到的区间\([l,r]\). 对于\(i,i+1\)的一扇门,如果钥匙在\(i\)的右边,连边\(i\to i+1\),表示从\(i\)出发到不了\(i+ ...
- SSM整合Activiti
1.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...
- 手动添加jar包到本地仓库
最近写一个小项目需要用到阿里大鱼的短信功能,安装官网提供的maven及demo做了下测试,在测试过程中,发现导入的pom文件是无效的,也就是说本地的maven仓库中并么有我们pom中的依赖.于是我在网 ...
- [jzoj]3521.道路覆盖(cover)
Link https://jzoj.net/senior/#main/show/3521 Description Tar把一段凹凸不平的路分成了高度不同的N段,并用H[i]表示第i段高度.现在Tar一 ...
- bzoj1625:[Usaco2007 Dec]宝石手镯(背包dp板子)
1625: [Usaco2007 Dec]宝石手镯 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1349 Solved: 954[Submit][St ...
- insert /*+append*/为什么会提高性能
在上一篇的blog中 做了下使用,在归档和非归档下,做数据插入http://blog.csdn.net/guogang83/article/details/9219479.结论是在非归档模式下表设置为 ...
- Go语言栈定义及相关方法实现
// stack 栈 package Algorithm import ( "errors" "reflect" ) // 栈定义 type Stack str ...
- 发现一个强大的可视化第三方库pyecharts
pyecharts 目前尚在不断的更新中,值得重点研究和学习的图表库
- window炫丽cmd的别名cmder
windows下的cmd,色彩度用起来不爽,cmder是对cmd的补充,界面很清爽 01.下载 https://github.com/cmderdev/cmder http://cmder.net/ ...