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 ...
随机推荐
- IAR7.51提示秘钥无效IAR 以及 CCDebug驱动(包含win7 64bit)
今天IAR不识别我的仿真器,然后我感觉驱动有问题,就把之前的驱动卸载了,但是按照以前的方法按章驱动(选择路径到IAR的某个目录),提示找不到驱动... 也不想重新装个IAR了,于是到CSDN上下载了这 ...
- [CF1039D]You Are Given a Tree
[CF1039D]You Are Given a Tree 题目大意: 给定一棵\(n(n\le10^5)\)个节点的树.对于每一个正整数\(k(1\le k\le n)\),求最多能找出多少条包含\ ...
- Scrapy Crawl 运行出错 AttributeError: 'xxxSpider' object has no attribute '_rules' 的问题解决
按照官方的文档写的demo,只是多了个init函数,最终执行时提示没有_rules这个属性的错误日志如下: ...... File "C:\ProgramData\Anaconda3\lib ...
- Android 蓝牙4.0 BLE (onServicesDiscovered 返回 status 是 129,133时)
Android ble (Bluetooth Low Energy) 蓝牙4.0,也就是说android 4.3+, API level >= 18,且支持蓝牙4.0的手机才可以使用. BLE是 ...
- Linux硬盘管理
管理好硬盘/dev/xxynsd SCSI SATA USBhd IDE主分区扩展分区 1-4逻辑分区5以后fdisk -l 硬盘名/分区名fdisk -l /dev/sda 如何给硬盘分区?把500 ...
- java第二周的学习知识2
sPrimitive() 判断是否为基本类型,Class.isPrimitive(),原始类型下返回true. for(Size value:Size.values()) { //此代码中的value ...
- 虚拟串口VSPD破解版 亲测win10 64可用
虚拟串口VSPD破解版 亲测win10 64可用 点击下载
- Error opening terminal: xterm-256color
在使用gdb调试linux内核时,提示如下错误: arm-none-linux-gnueabi-gdb --tui vmlinux Error opening terminal: xterm-256c ...
- Wordpress页面只显示一篇文章
- 为Ubuntu新创建用户创建默认.bashrc并自动加载
首先,su – 到新创建的用户 拷贝默认的.bashrc过来 1 cp /etc/skel/.bashrc ~/ 然后创建.profile文件 1 vi ~/.profile 粘贴下面的内容 ...