CN110457527B - 一种xml报文比对方法及系统 - Google Patents
一种xml报文比对方法及系统 Download PDFInfo
- Publication number
- CN110457527B CN110457527B CN201910760424.0A CN201910760424A CN110457527B CN 110457527 B CN110457527 B CN 110457527B CN 201910760424 A CN201910760424 A CN 201910760424A CN 110457527 B CN110457527 B CN 110457527B
- Authority
- CN
- China
- Prior art keywords
- xml
- nodes
- files
- comparison
- data sets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/86—Mapping to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/88—Mark-up to mark-up conversion
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于XML报文比对技术领域,公开了一种XML报文比对方法及系统,其XML报文比对方法,包括:分别获取两个待比较的XML文件内容,将所述两个待比较的XML文件按空格、换行符拆分为数据集;对两个数据集分别按对应XML节点排序,将排序后的数据集的内容逐行比较得到比对结果;本发明提供的这种XML报文比对方法及系统,可以消除节点顺序、字段顺序对XML报文比对结果的影响,找到两个XML报文的之间的真实区别;相对现有的客户端和在线比对的方式,本发明提供的这种比对方法及系统,可提供对外的接口接受XML文件或XML字符串,针对XML节点先排序再比对,可以得到更加真实的比对结果,最终的比对结果可以采用json格或HTML形式进行反馈,覆盖场景更广。
Description
技术领域
本发明属于XML文件比对技术领域,更具体地,涉及一种XML报文比对方法及系统。
背景技术
XML格式的文件可以用于数据交换和传递(webservice接口)。一般或设置一个标准XML报文,处理过程中还会生成一个或多个根据数据拼接而成的XML报文,理论上标准XML报文与拼接而成的XML报文在格式和字段上应保持一致,仅数据有差异。但实际上拼接而成的报文在字段顺序上常常与标准报文存在差异。在接口请求或返回异常时,需要分析拼接而成的XML报文与标准XML报文之间的区别;
传统的XML文件比对方法一般是基于电脑客户端或在线的字符串比对。基于电脑客户端的XML文件比对方式的主要缺点是闭源,只能在客户端操作,无法在外部程序调用;而在线的字符串比对一般扩展不够,只比对两个文件相同行的字符串是否一致,无法将XML节点以统一的顺序排序后再做比较,也没有提供开放的接口,也无法在外部程序调用。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种XML报文比对方法及系统,其目的在于排除XML报文内字段顺序对报文差异比对结果的影响,确定两个XML报文之间的实际内容差异。
为实现上述目的,按照本发明的一个方面,提供了一种XML报文比对方法,包括如下步骤:
(1)分别获取两个待比较的XML文件内容,将所述两个待比较的XML文件按空格、换行符拆分为数据集;
(2)将获得的两个数据集逐行比较得到比对结果。
优选地,上述的XML报文比对方法,在步骤(2)之前还包括对所述数据集按对应XML节点排序的步骤。
优选地,上述XML报文比对方法,对数据集分别按对应XML节点排序的方法具体如下:
(a)将XLM文件转换为json文件;
(b)基于转换得到的json文件,按照统一规则将同级节点内的内容进行排序;
(c)检查排序后的文件与排序前的文件,以确保排序前、后文件的一致性。
优选地,上述XML报文比对方法,在同级节点间进行排序的规则为按节点的ASCII码的大小顺序进行排序。
优选地,上述XML报文比对方法,比对结果以json格式输出,或将比对结果转换成HTML格式输出。
为实现本发明目的,按照本发明的另一个方面,提供了一种XML报文比对系统,包括:
源数据获取模块,用于将两个XML文件作为比对数据源;
XML文件拆分模块,用于获取待比较的两个XML文件内容,将两个待比较的XML文件分别按空格、换行符拆分为数据集;
比较模块,用于将获得的两个数据集逐行比较,得到比对结果。
优选的,上述XML报文比对系统,还包括
XML节点排序模块,用于对拆分得到的数据集按XML节点进行排序。
优选的,上述XML报文比对系统,其XML节点排序模块对XML节点排序的方法具体如下:
(a)将XLM文件转换为json文件;
(b)基于转换得到的json文件,按照统一规则将同级节点内的内容进行排序;
(c)检查排序后的文件与排序前的文件,以确保排序前、后文件的一致性。
为实现本发明目的,按照本发明的另一个方面,提供了一种XML报文比对系统,包括存储器、处理器,以及存储在存储器上可被处理器调用的指令,当指令被调用时,执行上述XML报文比对方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
本发明提供的XML报文比对方法及系统,将待比较的XML文件按空格、换行符拆分为数据集,对两个数据集分别按对应XML节点排序,将排序后的数据集的内容逐行比较得到比对结果;这种XML报文比对方法及系统,可以消除节点顺序、字段顺序对XML报文比对结果的影响,找到两个XML报文的之间的真实区别;相对现有的客户端比对和在线比对的方式,本发明提供的这种XML报文比对方法及系统,可提供对外的接口接受XML文件或XML字符串,针对XML节点先排序再比对,可以得到更加真实的比对结果,最终的比对结果可以采用json格或HTML形式进行反馈,覆盖场景更广。
附图说明
图1是本发明实施例1提供的XML报文比对方法的流程示意图;
图2是本发明实施例2提供的XML报文比对方法的流程示意图;
图3是本发明实施例3提供的XML报文比对方法中将两个数据集分别按对应XML节点排序的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
参照图1,实施例1提供的XML报文比对方法,包括如下步骤:
(1)将两个XML文件作为比对数据源;
(2)分别获取两个XML文件内容,将两个XML文件分别按空格、换行符拆分为数据集;
(3)将获得的两个数据集逐行比较,分析差异;
(4)返回比对结果。
参照图2,实施例2提供的XML报文比对方法,包括如下步骤:
(1)将两个XML文件作为比对数据源;
(2)分别获取两个XML文件内容,将两个XML文件分别按空格、换行符拆分为数据集;
(3)将两个数据集分别按对应XML节点排序;
(4)将排序后的两个数据集转逐行比对,分析差异;
(5)返回比对结果或展示差异页面。
实施例3提供的XML报文比对方法,在实施例2的基础上,对其步骤(3)做了进一步的改进,具体包括如下步骤:
(1)将两个XML文件作为比对数据源;
(2)分别获取两个XML文件内容,将两个XML文件分别按空格、换行符拆分为数据集;
(3)将两个数据集分别按对应XML节点排序;参照图3,该步骤包括如下子步骤:
(3.1)将XLM文件转换为json文件;
(3.2)基于转换得到的json文件,按照预定的统一规则将同级节点排序;
(3.3)检查排序后的文件与排序前的文件,保证文件一致性;
(4)将排序后的两个数据集转逐行比对,分析差异;
(5)返回比对结果或展示差异页面。
比对结果用于标注两个XML文件的不同之处,以文件一、文件二指代被比较的两个XML文件;比对结果包括:相对于文件一而言,文件二多出的节点或缺失的节点;相对于文件二而言,文件一多出的节点或缺失的节点;文件一与文件二都有但是值不一样的节点。
在一个优选实施例中,比对结果以json格式输出。在另一个优选实施例中,将比对结果转换成HTML格式输出。
本发明提供的这种报文比对方法,可部署在服务器,绑定域名,提供Restful风格的接口(支持json,允许跨域请求调用)。
以下结合具体的XML报文比对实例来进一步阐述对节点进行排序的方法。
实例1:有如下XML片段
在这个XML片段中,student与school为同级节点,而在student节点中,name、age、number为同级节点;school节点中,name和number也为同级节点;student节点中的子节点(name,age,number)不与school节点中的子节点(name,number)排序,在排序时,考虑到XML文件是有嵌套关系的,可以很明确的区分出同级节点与非同级节点,因此仅在同级节点间进行排序。本实例中的对节点排序的规则为按节点的ASCII码的先后顺序对同级节点进行排序;譬如对其中的XML片段,
<name>张三</name>
<age>18</age>
<number>111111</number>;
已知n的ASCII码为110,a的ASCII码为97,u的ASCII码为117;按节点字母ASCII码由小到大排序得到age name/number(首字母相同),再比较name与number的第二个字母;最终得到的顺序为age name number。
以下阐述检测排序后与排序前文件一致性的方法。
将排序前的文件和排序后的文件去除空格、换行符、制表符后,比较剩余内容的字符长度和单个字符出现的次数是否一致。
现有的XML比对方法是将XML当做普通的文本比对,仅考虑字符是否一一对应,而本发明提供的这种报文比对方法,针对XML节点先排序再比对,XML文件的内容不受同级节点的顺序的影响,相对于现有方法可以得到更加真实的比对结果;以下结合实例2进行阐述。
实例2:XML文件1为:
<name>张三</name>
<age>18</age>
<number>111111</number>;
XML文件2为:
<age>18</age>
<number>111111</number>
<name>张三</name>;
采用现有方法对这两个XML文件进行文本比对时,这两个XML文件完全不一样,每行内容都不一样;
而采用本发明的这种比对方法,先对统计节点的内容进行排序后进行比对;
排序后两个XML文件均为如下格式:
<age>18</age>
<name>张三</name>
<number>111111</number>
再进行比对,比对结果判定这两个XML文件内容相同,是相同的两个XML文件。
拼接的XML报文在字段顺序上常常与标准报文存在差异,在接口请求或返回异常时,需要分析拼接报文与标准报文之间的区别;本发明提供的这种XML报文比对方法,可以消除节点顺序、字段顺序对报文的影响,找到两个XML报文的之间的真实区别。相对现有的客户端和在线比对的方式,本方案提供对外的接口接受XML文件或XML字符串,针对XML节点先排序再比对,可以得到更加真实的比对结果,最终的比对结果可以是json格式,也可以是HTML形式,覆盖场景更广。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种XML报文比对方法,其特征在于,包括如下步骤:
(1)分别获取两个待比较的XML文件内容,将所述两个待比较的XML文件按空格、换行符拆分为数据集;
(2)对所述数据集按对应XML节点排序;
(3)将获得的两个数据集逐行比较,即将排序前的文件和排序后的文件去除空格、换行符、制表符后,比较剩余内容的字符长度和单个字符出现的次数是否一致,得到比对结果;
其中,对数据集按对应XML节点排序的方法具体包括:
(a)将XLM文件转换为json文件;
(b)基于转换得到的json文件,按照统一规则将同级节点内的内容进行排序;
(c)检查排序后的文件与排序前的文件,以确保排序前、后文件的一致性。
2.如权利要求1所述的XML报文比对方法,其特征在于,在同级节点间进行排序的规则为按节点的ASCII码的大小顺序进行排序。
3.一种XML报文比对系统,其特征在于,包括:
源数据获取模块,用于将两个XML文件作为比对数据源;
XML文件拆分模块,用于获取待比较的两个XML文件内容,将两个待比较的XML文件分别按空格、换行符拆分为数据集;
XML节点排序模块,用于对拆分得到的数据集按XML节点进行排序;
以及
比较模块,用于将获得的两个数据集逐行比较,即将排序前的文件和排序后的文件去除空格、换行符、制表符后,比较剩余内容的字符长度和单个字符出现的次数是否一致,得到比对结果;
其中,所述XML节点排序模块对XML节点排序的方法具体如下:
(a)将XLM文件转换为json文件;
(b)基于转换得到的json文件,按照统一规则将同级节点内的内容进行排序;
(c)检查排序后的文件与排序前的文件,以确保排序前、后文件的一致性。
4.如权利要求3所述的XML报文比对系统,其特征在于,所述XML节点排序模块在同级节点间进行排序的规则为按节点的ASCII码的大小顺序进行排序。
5.一种基于权利要求1或2所述的XML报文比对方法的XML报文比对系统,其特征在于,包括存储器、处理器,以及存储在存储器上可被处理器调用的指令,当所述指令被调用时,执行权利要求1或2所述的XML报文比对方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910760424.0A CN110457527B (zh) | 2019-08-16 | 2019-08-16 | 一种xml报文比对方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910760424.0A CN110457527B (zh) | 2019-08-16 | 2019-08-16 | 一种xml报文比对方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457527A CN110457527A (zh) | 2019-11-15 |
CN110457527B true CN110457527B (zh) | 2023-02-28 |
Family
ID=68487276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910760424.0A Active CN110457527B (zh) | 2019-08-16 | 2019-08-16 | 一种xml报文比对方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457527B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831572A (zh) * | 2020-07-24 | 2020-10-27 | 北京思特奇信息技术股份有限公司 | 一种实现xml-json的批量比对测试方法和装置 |
CN112417085A (zh) * | 2020-11-27 | 2021-02-26 | 平安普惠企业管理有限公司 | 报文对比方法、装置、计算机设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598231A (zh) * | 2015-01-09 | 2015-05-06 | 山东工商学院 | Python源代码文件相似性检测方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011148385A2 (en) * | 2010-05-24 | 2011-12-01 | Tata Consultancy Services Limited | Method and system for disintegrating an xml document for high degree of parallelism |
CN102185901B (zh) * | 2011-04-19 | 2013-06-26 | 北京思特奇信息技术股份有限公司 | 一种客户端报文转换方法 |
CA2782391A1 (en) * | 2012-06-29 | 2013-12-29 | The Governors Of The University Of Alberta | Methods for matching xml documents |
US9588975B2 (en) * | 2014-06-11 | 2017-03-07 | International Business Machines Corporation | Processing large XML files by splitting and hierarchical ordering |
CN106503268B (zh) * | 2016-12-07 | 2019-08-23 | 广东神马搜索科技有限公司 | 数据对比方法、装置和系统 |
-
2019
- 2019-08-16 CN CN201910760424.0A patent/CN110457527B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598231A (zh) * | 2015-01-09 | 2015-05-06 | 山东工商学院 | Python源代码文件相似性检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110457527A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4373721B2 (ja) | マークアップ言語文書を符号化するための方法およびシステム | |
US10579372B1 (en) | Metadata-based API attribute extraction | |
CN110457527B (zh) | 一种xml报文比对方法及系统 | |
CN102685200A (zh) | 使用模板生成和指纹比较特征管理不想要的通信 | |
US20070061402A1 (en) | Multipurpose internet mail extension (MIME) analysis | |
CN110855555B (zh) | 邮件发送方法、装置、设备及计算机可读存储介质 | |
US6356907B1 (en) | Providing for data types of properties according to standard request-response protocols | |
CN111880755A (zh) | 一种打印方法、装置、电子设备及计算机可读存储介质 | |
CN113032336A (zh) | 信息处理装置、存储介质及信息处理方法 | |
CN114266539A (zh) | 文件流程处理方法、系统、装置及计算机可读存储介质 | |
CN116346961B (zh) | 金融报文处理方法、装置、电子设备及存储介质 | |
CN111078764B (zh) | 数据处理方法、装置、计算机可读存储介质及电子设备 | |
KR101221096B1 (ko) | 스팸 관리 장치 및 스팸 관리 방법 | |
US20200320047A1 (en) | System and method for fingerprinting-based conversation threading | |
CN114444447A (zh) | 一种卡片的处理方法及装置 | |
CN105808783B (zh) | 一种不同域名格式的大文件数据差异性分析方法 | |
CN107463690B (zh) | 一种实现快速链接的方法及系统 | |
JP2021117508A (ja) | 情報処理装置及びプログラム | |
CN111882419A (zh) | 质检文件的方法、装置及服务器 | |
CN114760365B (zh) | 一种数据提取方法、装置及电子设备 | |
Kotzé et al. | Developing and evaluating a pipeline for setswana ocr | |
CN112632147B (zh) | 数据差异化比较方法、系统和存储介质 | |
CN111046420B (zh) | 一种能源设备信息采集的方法及装置 | |
CN110073345B (zh) | 一种邮件附件的管理方法及系统 | |
CN114003785A (zh) | 一种基于内生安全的威胁情报获取方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |