Dom4j 解析 构建 XML

本贴最后更新于 2564 天前,其中的信息可能已经时移世易

Dom4j 是 XML 常用解析方式之一
性能 功能都很强大 简单介绍一下

Maven 依赖(不用 Maven 可自行下载)

    <dependencies>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>jaxen</groupId>
            <artifactId>jaxen</artifactId>
            <version>1.1.6</version>
        </dependency>
    </dependencies>

上述配置中 jaxen 的包主要在使用 Xpath 时会被用到。

String XML 互转

SAXReader saxReader = new SAXReader(); 
Document document = saxReader.read(new ByteArrayInputStream(xml.getBytes()));
或
document = DocumentHelper.parseText(xml);

document.asXML();

生成 XML

        Document document=DocumentHelper.createDocument();
		Element root=document.addElement("DATAINFOS");
		root.addAttribute("uuid", "当前批数据的uuid");
		Element dataInfoEle=root.addElement("DARAINFO");
		Element categoryCodeEle=dataInfoEle.addElement("CATEGORYCODE");
		Element categoryNameEle=dataInfoEle.addElement("CATEGORYNAME");
		Element uuidEle=dataInfoEle.addElement("UUID");
		Element lastModifyRecordTimeEle=dataInfoEle.addElement("LASTMODIFYRECORDTIME");
		
		categoryCodeEle.addAttribute("REMARK", "类别编码");
		categoryNameEle.addAttribute("REMARK", "类别名称");
		uuidEle.addAttribute("REMARK","UUID");
		lastModifyRecordTimeEle.addAttribute("REMARK", "上一次变更时间");
		lastModifyRecordTimeEle.addAttribute("STARTTIME", startTime);
		lastModifyRecordTimeEle.addAttribute("ENDTIME",endTime);
		
		categoryCodeEle.addText(categorycode);
		categoryNameEle.addText(categoryname);
		uuidEle.addElement(uuid);
		document.setXMLEncoding("UTF-8");
		System.out.println(document.asXML());
		return document.asXML();
		
		思路生成根节点 逐个往下搭即可

解析 XML

记住一下几个方法即可

Element root=document.getRootElement(); //获取根节点
root.elementText("CODE")                //节点名取内容
root.element("CODE")                    //查找节点
root.getText()                          //获取节点内容
List<Element> dataList=ele.elements();  //当前节点下所有子节点

参考 https://www.cnblogs.com/nerxious/archive/2013/05/04/3060263.html

  • XML
    28 引用 • 59 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...