"Dom4j 是 XML 常用解析方式之一 性能 功能都很强大 简单介绍一下 Maven 依赖(不用 Maven 可自行下载) dom4j dom4j 1.6.1 jaxen jaxen 1.1.6 上述配置中 jaxen 的包主要在使用 Xpath 时会被用到。 String XML 互转 SAXReade .."

Dom4j 解析 构建 XML

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

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
    24 引用 • 58 回帖
感谢    关注    收藏    赞同    反对    举报    分享
回帖    
请输入回帖内容...