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 简单使用的更多相关文章

  1. Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)

    [目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...

  2. dom4j+XPath

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  3. 解析Xml四种方法

    关键字:Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath [引言] 目前在Java中用于解析XML的技术很多,主流的有DOM.SAX.JDOM.DOM4j,下文 ...

  4. 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 ...

  5. XXE攻防总结

    1. 前言与XML格式相同的web漏洞,比较广泛的共有xpath注入.xml注入.soap注入.XXE四种. 2. XML相关的介绍针对xml语言,要明白两个特性:合法性与合理性.所谓合法性,是指语法 ...

  6. java解析xml汇总

    [目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...

  7. 简单用DOM4J结合XPATH解析XML

    由于DOM4J在解析XML时只能一层一层解析,所以当XML文件层数过多时使用会很不方便,结合XPATH就可以直接获取到某个元素 使用dom4j支持xpath的操作的几种主要形式    第一种形式   ...

  8. dom4j解析器 基于dom4j的xpath技术 简单工厂设计模式 分层结构设计思想 SAX解析器 DOM编程

    *1 dom4j解析器   1)CRUD的含义:CreateReadUpdateDelete增删查改   2)XML解析器有二类,分别是DOM和SAX(simple Api for xml).     ...

  9. java 开发中 dom4j的简单用法

    Java中处理XML的方式有很多种,个人任务dom4j还是比较好用的.下面介绍以下简单的使用方法 先把import补充上 import org.dom4j.Document; import org.d ...

随机推荐

  1. BZOJ.4503.两个串(FFT/bitset)

    题目链接 \(Description\) 给定两个字符串S和T,求T在S中出现了几次,以及分别在哪些位置出现.T中可能有'?'字符,这个字符可以匹配任何字符. \(|S|,|T|\leq 10^5\) ...

  2. 统一各浏览器CSS 样式——CSS Reset

    html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, ...

  3. JS 之 script标签

    1.script标签 1.js代码的解析(包括下载js文件)会阻塞页面加载 2.当js文件放在头部,页面必须等所有js代码都被下载,解析和执行完成后才开始呈现页面内容(遇到body标签才呈现),对于那 ...

  4. yii2小部件(widget)

    一.创建一个简单的小部件 namespace common\components; //common需要自己先设定一个别名 use yii\base\Widget; //小部件需要继承的基类 use ...

  5. redis键值操作

    1.1. redis键值操作 1.1.1. keys patten 查询相应的key 可以精确的查,也可以模糊的查 1.1.1.1. 通配符:* ? [] 在redis里,模糊查询key的时候有3个通 ...

  6. 在C#中,Json的序列化和反序列化的几种方式总结 转载

    转载自  https://www.cnblogs.com/caofangsheng/p/5687994.html    谢谢 在这篇文章中,我们将会学到如何使用C#,来序列化对象成为Json格式的数据 ...

  7. 深入理解JVM(1)——JVM内存模型

    Java虚拟机的内存空间分为五个部分,分别是: 程序计数器: Java虚拟机栈 本地方法栈 堆 方法区 接下来对这五部分分别进行详细的介绍 1.程序计数器: a)什么是程序计数器:程序计数器是内存中的 ...

  8. python之封装与扩展性

    1.封装与扩展性 封装在于明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用的代码:而外部使用者只知道一个接口(函数),只要接口(函数)名,参数不变,使用者的代码永远无需改变.这就提供了一 ...

  9. PHP03

    PHP03 1.提交地址: action.用户点击提交后,发送请求的地址.一般为了便于维护,最常见的是提交给当前文件,然后在当前文件判断是否为表单提交请求,表单的处理逻辑放在Html之前,为了避免写死 ...

  10. django之ORM补充

    本篇导航: QuerySet 中介模型 查询优化 extra 一.QuerySet 1.可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句 ...