dom4j 简单使用
2018-04-23 14:42 xiashengwang 阅读(773) 评论(0) 编辑 收藏 举报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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架