dom4j 簡(jian)單使用(yong)
2018-04-23 14:42 xiashengwang 閱讀(776) 評論(0) 收藏 舉報1,需要(yao)用到dom4j的(de)(de)jar包。為(wei)了打開xml方(fang)便,設計一(yi)個簡單(dan)的(de)(de)封裝類。
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 * 相對路徑,相對于(yu)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); }
特別要(yao)注意,上面(mian)的Element.selectNodes方法(fa),用到了XPath的語(yu)法(fa),dom4j.jar里面(mian)是沒有包(bao)含這個(ge)功(gong)能的,需(xu)要(yao)添加下(xia)面(mian)這個(ge)jar包(bao)(maven工程(cheng),非maven工程(cheng)需(xu)要(yao)自己去(qu)下(xia)載),不然(ran)會報(bao)錯。
<!-- //mvnrepository.com/artifact/jaxen/jaxen --> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.6</version> </dependency>