private Map<String, Element> removeDuplication(String filepath1, String filepath2, String rootName, String attrName) throws Exception {
// 读取第一个xml
Map<String, Element> map1 = readXml(filepath1, rootName, attrName);
Set<String> set1 = map1.keySet();
System.out.println(map1.keySet());
// 读取第二个xml
Map<String, Element> map2 = readXml(filepath2, rootName, attrName);
Set<String> set2 = map2.keySet();
System.out.println(map2.keySet());
Map<String, Element> newMap = new TreeMap<>();
// 第二个map根据第一个去重
Sets.SetView<String> difference = Sets.difference(set2, set1);
for (String s : difference) {
newMap.put(s, map2.get(s));
}
return newMap;
}
private void writeXml(Map<String, Element> map, String filepath, String rootName) throws Exception {
// 重写文件
// 1. 创建Docuembnt
Document doc = DocumentHelper.createDocument();
// 2. 创建根元素
Element root = doc.addElement(rootName);
// root.addComment("文档的根city已经创建。");// 添加注释
for (Map.Entry<String, Element> entry : map.entrySet()) {
entry.getValue().setParent(null);
root.add(entry.getValue());
// entry.getValue().setParent(root);
// doc.add(entry.getValue());
}
// 创建输出流
Writer out = new PrintWriter(filepath, "utf-8");
// 格式化
OutputFormat format = new OutputFormat(" ", true);
format.setTrimText(true);//去掉原来的空白(\t和换行和空格)!
XMLWriter writer = new XMLWriter(out, format);
// 把document对象写到out流中。
writer.write(doc);
out.close();
writer.close();
}
/**
* @param filepath 文件地址,全路径
* @param rootName xml根名 "<root></root>"则 rootName 是 root
* @param attrName 属性
*/
private Map<String, Element> readXml(String filepath, String rootName, String attrName) throws Exception {
Map<String, Element> map = new TreeMap<>();
SAXReader reader = new SAXReader();
// InputStream resourceAsStream = AttrParseTest.class.getResourceAsStream("/attrs.xml");
// Document document = reader.read(resourceAsStream);
File file = new File(filepath);
Document document = reader.read(file);
// <resources>
Element resources = document.getRootElement();
List<Element> attrElements = resources.elements();
for (Element attrElement : attrElements) {
List<Attribute> attrs = attrElement.attributes();
for (Attribute attr : attrs) {
if (attrName.equals(attr.getName())) {
map.put(attr.getValue(), attrElement);
}
}
}
return map;
}
相关推荐
XML文档比较工具
《XML文档比较工具》(A7Soft ExamXML PRO)v5.15[压缩包]
dom4j对xml比较完整的操作
最近写的插件用到了dom4j,来读写,修改文档。用到的功能都写出来了下面包含了两个程序 WriteFriendsInfo,和 ReadFriendsInfo。 1.WriteFriendsInfo 包含了新建xml和修改,删除xml节点的方法 一些要点: WriteFriendsInfo 中修改节点采用的方式是删除节点,然后把新的节点写进去。在不对读写要求很大的情况下,这样做
xmldiffs:比较两个XML文件,忽略元素和属性的顺序
xmldiffs 在语义上比较XML文件,而忽略元素和属性的顺序。 用法: xmldiffs [OPTION] FILE1 FILE2 任何其他选项都将传递给diff命令。 它是如何工作的? xmldiffs首先解析每个XML文件,然后将它们按元素(标签)名称和属性排序。 然后将结果传递给diff进行语义XML比较。
分别使用dom和dom4j解析XML文档
分别使用dom和dom4j解析XML文档
XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较,超详细
XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较,超详细XML的四种解析器原理及性能比较,超详细
Jenkins中文显示不全?三步搞定Locale插件+汉化包的正确安装姿势
本文针对Jenkins界面中文显示不全问题,提供从原理到实战的深度解决方案。文章详细解析了Locale插件与中文语言包的核心机制,并分步指导如何通过配置JVM环境、正确安装插件及执行深度排查,彻底解决汉化顽疾,实现Jenkins界面的完美中文显示。
判断两个XML文件结构与内容是否相同
1. 引入 目前公司的这款软件导入导出数据库信息的方法是:组织数据的内容和结构 利用MS com的sax解析 储存数据为XML格式 优点是可以选择部分导出 缺点是速度慢文件导出的文件庞大,若客户出现导入导出错误要重现或者调试困难 由于软件持续更新所以不同版本的,XML有差异 现客户需求将高版本的软件导出成 低版本XML,保证从任何高版本导出的文件 与...
Chromatix 7实战:从零开始调优ISP模块的完整流程(附常见报错解决方案)
本文提供了高通平台Camera调试工具Chromatix 7的完整实战指南。详细阐述了从环境准备、项目初始化、基础校正(如LSC、BPC)到核心ISP管线(Demosaic、CCM、HDR)及后处理(CAC、ANR)的调优全流程,并附带了常见报错(如“未初始化实例”)的解决方案,旨在帮助工程师建立系统性的调试方法论。
DOM4J中Document的操作
---------------------------------------DOM4J中Document的操作--------------------------------Document操作 (*****) 1 遍历students.xml 涉及的相关方法:l Element getRootElement():Document的方法,用来获取根元素;l List elements():...
华为防火墙双ISP出口实战:如何用策略路由实现电信联通流量自动切换(附配置截图)
本文详细解析了华为防火墙在双ISP环境下的智能选路技术,通过策略路由与健康检测的深度应用,实现电信联通流量的自动切换。文章包含实战配置截图,帮助企业解决切换延迟、路径劣化等核心挑战,提升业务连续性。
C# : 计算并输出这一天是这一年的第几天
C#之输入某年,然后输入某月,再输入某日,计算并输出这一天是这一年的第几天的功能算法
简单使用dom4j对xml文件进行输出操作(如何使用dom4j对xml文件进行输出)
上一篇已经介绍了如何使用dom4j对xml进行读取解析,现在谈谈怎么使用dom4j操作xml文件的输出。 首先去下载个DOM4J的jar包,以下两个网站选一个吧,下载后导入项目 http://www.jdom.org/docs/apidocs/index.html www.jdom.org 代码实现过程如下: import java.io.FileWr
[cryoEM] cryoSPARC简介
cryoSPARC系统结构概述 cryoSPARC是一个后端和前端高性能计算软件系统,为单颗粒冷冻电镜提供数据处理和图像分析能力,以及丰富的基于浏览器的用户截面和命令行工具。 Master-worker模式 系统基于主用户模式。 主进程(web应用,核心应用程序和MongoDB数据库)一起在主节点上运行。主节点需要相对轻量级的资源(2+ CPU< 16GB+ RAM)。 工作程序进程可以在具有GPU的任何可用节点上生成,负责所有实际计算和数据处理,并由主节点调度。注意:同一节点可以同时充当主节点和辅
使用Dom4j解析XML文件
使用Dom4j解析XML文件
手把手教你用RTD2775QT/RTD2795QT打造4K便携屏:从芯片选型到Type-C一线通实战
本文详细介绍了如何利用RTD2775QT和RTD2795QT显示驱动芯片打造4K便携屏的全过程,包括芯片选型、硬件设计、固件烧录及Type-C一线通实战方案。特别针对新手常见问题提供了解决方案,帮助读者高效完成DIY项目,提升移动办公体验。
Linux ARM平台开发系列讲解(GPIO子系统) 2.3.2 GPIO子系统常用函数解析
1. 概述 该章节会记录一年常用的GPIO子系统常用函数,会更具情况不断更新 static inline int gpio_get_value(unsigned int gpio) 功能 :用于获取某个GPIO引脚上的值 gpio : gpio引脚号 返回值:非负值,得到的 GPIO 值;负值,获取失败。 static inline void gpio_set_value(unsigned int gpio, int value) static inline int gpio_cansleep(unsi
【DOM4J】Java中使用 DOM4J解析XML文件,解析Mybatis Mapper xml文件思路。
/这里相当于进入了Select标签元素内部break;break;// 添加注释break;以上对整个XML做了一个遍历,第一个for循环是对xml总体做了一个遍历,而内部则是开始获取的内容,这里通过。
【YOLOv11多模态涨点改进】独家创新首发 | TGRS 2025 | 引入CDFIM跨模态差异特征交互模块,通过差异特征提取和融合增强机制,减少了冗余信息,显著提升了小目标的检测精度,高效涨点改进
🔥本文给大家介绍使用 CDFIM跨模态差异特征交互模块改进 YOLOv11多模态目标检测,通过有效的差异特征提取和增强,显著提升了小目标的检测精度,特别是在复杂背景和低对比度环境下。该模块通过残差加法和通道与空间注意力机制,增强了可见光与红外模态之间的互补特征交互,减少了冗余信息,提高了检测稳定性。尽管提升了特征交互,CDFIM 仍保持轻量化设计,计算开销和参数量较低,适合实时检测应用。总的来说,CDFIM 模块在保留原始模态信息的同时优化了特征融合,有效提高了 YOLO 在多模态目标检测中的鲁棒性和精度
java用dom4j对XML文件读取并追加内容
基于之前写的文章:如何用dom4j创建XML文件并写入节点 进行优化处理。 主要是增加对于文件是否存在的判断,看一个dome: public class xml{ public static void saveXml( ) throws DocumentException { String path=StaticValue.ApplicationPath + "/ReportS...
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
Java解析XML文件(DOM4J解析xml文件)
实现通过DOM4J技术解析XML配置文件,修改xml配置信息,创建xml文件及信息。通过dom4j技术模拟解析web.xml文件的过程。
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
使用dom4j解析xml文件,并封装为javabean对象
dom4j是一个java的XML api,性能优异、功能强大、易于使用。这里使用dom4j对xml文件进行解析,并完成对文件的封装。 实现对xml文件的解析,主要使用到的是dom4j中的SAXReader类,该类的使用方法如下: SAXReader 类 //构造SAXReader SAXReader sr = new SAXReader(); //加载文件
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
使用DOM4j输出xml文档
模拟输出一组信息数据 用数组模拟要保存的数据 //保存信息的数组 int[] id = new int[]{1,2,3}; String[] names = new String[]{"maoshu","lose","Houce"}; String[] sexs = new String[]{"男","女","男"};
(二)使用Dom4j对XML文件进行解析
目录1、XML解析概念2、Dom4j解析过程 1、XML解析概念 XML解析技术: HTML和XML都是标记型文档,可以使用W3C组织制定的DOM技术来解析。(DOM把所有标签表示为对象) dom4j解析技术: 早期JDK提供了两种方式对XML进行解析,分别是DOM和SAX,目前已经不使用。 第三方解析: dom➡jdom, jdom➡dom4j, pull主要用在Android手机开发,是和sax类似为事件机制解析xml文件。 2、Dom4j解析过程 使用dom4j解析XML文件,
使用Dom4j创建一个XML文件
以创建下面样式的xml为例 xml version="1.0" encoding="UTF-8"?> users> user name="tom">26.5user> user name="jack" id="0001">126.5user> user name="ody">95.5user> school name="cslg" id="01">常熟理工学院schoo
使用DOM4J读取xml
----------------------------------使用DOM4J读取xml-------------------------------------DOM4J概述 1 DOM4J是什么DOM4J是针对Java开发人员专门提供的XML文档解析规范,它不同与DOM,但与DOM相似。DOM4J针对Java开发人员而设计,所以对于Java开发人员来说,使用DOM4J要比使用DOM更加方便...
Java使用Dom4J方式解析XML文件
一 dom4j介绍 使用方式:在pom.xml中导入dom4j对应的jar <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> 优点:dom4j使Java生成和解析XML灵活性变高,并且代码易于.
637



被折叠的 条评论
为什么被折叠?



