CN109241498B - Xml文件处理方法、设备和存储介质 - Google Patents

Xml文件处理方法、设备和存储介质 Download PDF

Info

Publication number
CN109241498B
CN109241498B CN201810666574.0A CN201810666574A CN109241498B CN 109241498 B CN109241498 B CN 109241498B CN 201810666574 A CN201810666574 A CN 201810666574A CN 109241498 B CN109241498 B CN 109241498B
Authority
CN
China
Prior art keywords
message
xpath
compression
template
xml
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
Application number
CN201810666574.0A
Other languages
English (en)
Other versions
CN109241498A (zh
Inventor
刘正
赵继光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN201810666574.0A priority Critical patent/CN109241498B/zh
Publication of CN109241498A publication Critical patent/CN109241498A/zh
Application granted granted Critical
Publication of CN109241498B publication Critical patent/CN109241498B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • H03M7/707Structured documents, e.g. XML
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (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报文解析为Xpath表达式和元素值;查询是否存在与所接收的交易服务编码匹配的报文压缩模板,若否,则将所接收的交易服务编码和解析出的Xpath表达式和元素值存储到数据库作为报文压缩模板,根据预定压缩规则生成压缩字符串;若是,则根据预定压缩规则生成压缩字符串,并在解析出的Xpath表达式与匹配的报文压缩模板中的Xpath表达式不相同时,更新数据库中的报文压缩模板表。本申请的方法,能够提高XML文件压缩的效率。

Description

XML文件处理方法、设备和存储介质
技术领域
本发明涉及数据处理领域,更为具体而言,涉及一种XML文件处理方法、设备和存储介质。
背景技术
当前大型系统的海量报文数据是企业信息化过程中产生的重要资源,是大数据分析和自动化测试以及生产问题跟踪定位的重要资料之一,但也由于数量巨大造成了传输、查询、存储、使用等方面的一些问题,尤其是比较常用的可扩展标记语言(eXtensibleMarkup Language,XML)报文,其本身具有标签和数据冗余量大的特点,且由于同一个交易服务所产生XML报文的结构和数据相同或相近,因此造成了更多的冗余数据被传输和存储,XML报文压缩技术是解决此问题的一个途径。
现有的xml压缩算法工具如XMLPPM、XWRT、XGRIND等更加适合规模较大的xml文档的压缩,而软件系统的xml报文一般都很小,没有考虑软件系统的XML自身的特征,导致这些算法复杂性较高而且压缩效率不高。
发明内容
本发明提供了一种XML文件处理方法,考虑到软件系统的XML报文一般较小,而且冗余度较高,将XML文档解析为Xpath路径表达式,并为Xpath 表达式进行编号,形成列表作为模板保存,将XML文档压缩为Xpath编号和对应元素值的列表,显著提高了软件系统的XML文件的压缩效率。
第一方面,本发明实施方式提供了一种XML文件处理方法,包括:接收待压缩的XML报文和所述XML报文对应的交易服务编码;将所述XML报文解析为Xpath表达式和元素值,其中,所述Xpath表达式为表示所述XML 文件中节点路径的表达式;查询是否存在与所接收的交易服务编码匹配的报文压缩模板,若未查询到匹配的报文压缩模板,则将所接收的交易服务编码和解析出的Xpath表达式和元素值存储到数据库作为报文压缩模板,根据预定压缩规则生成压缩字符串;若查询到匹配的报文压缩模板,则根据预定压缩规则生成压缩字符串,并在所述解析出的Xpath表达式与匹配的报文压缩模板中的Xpath表达式不相同时,更新所述数据库中的报文压缩模板表。
第二方面,本发明实施方式提供一种计算机设备,包括存储器和处理器,其中,所述存储器,存储有计算机指令;所述处理器,配置为执行所述计算机指令以使所述计算机设备实现第一方面所述的方法。
第三方面,本发明实施方式提供一种计算机可读的存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现第一方面所述的方法。
附图说明
图1示出了根据本发明实施方式的XML文件处理方法的流程示意图。
图2示出了根据本发明实施方式的XML文件处理方法的代码截图。
图3示出了根据本发明实施方式的XML文件处理方法的代码截图。
图4示出了根据本发明实施方式的XML文件处理方法的代码截图。
图5示出了根据本发明实施方式的XML文件处理方法的代码截图。
图6示出了根据本发明实施方式的XML文件处理方法的代码截图。
图7示出了根据本发明实施方式的XML文件处理方法的代码截图。
图8示出了根据本发明实施方式的XML文件处理方法的代码截图。
图9示出了根据本发明实施方式的计算机设备的结构示意图。
具体实施方式
以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。
参见图1,图1示出了根据本发明实施方式的XML文件处理方法的流程示意图,该方法可包括步骤S101、S102、S103、S104和S105,下面结合具体的实施例对上述步骤进行说明。
步骤S101,接收待压缩的XML报文和所述XML报文对应的交易服务编码。
在本发明的一些实施例中,待压缩的XML报文是报文字符串的形式,交易服务编码也可以是由字符和数字等组合的标识符,例如,A05811000。例如,在一种实施例中,交易服务编码为A05811000的XML交易报文可以是如图2 所示的形式。
在一些实施例中,待压缩的XML报文是首次接到的该交易服务编码的报文。在另外一些实施例中,待压缩的XML报文是非首次(例如,第二次、第三次等)接到的该交易服务编码的报文。
步骤S102,将所述XML报文解析为Xpath表达式和元素值,其中,所述Xpath表达式为表示所述XML文件中节点路径的表达式。
在一些实施例中,Xpath表达式是表示XML文件中节点路径的路径表达式,也可以称为Xpath路径。例如,
<foo>
<bar/>
</foo>
该XML报文中的<bar>元素的xpath表达式为/foo/bar。
例如,对于XML报文:
<foo>
<bar>abc</bar>
<id>15</id>
</foo>
将该XML报文通过解析器进行解析后生成Xpath表达式和元素值,对于存在多个Xpath和元素值的情形,对每个Xpath表达式和元素值进行编号,一个Xpath表达式对应一个编号,编号可以采用阿拉伯数字:
步骤S103,查询是否存在与所接收的交易服务编码匹配的报文压缩模板。
在一些实施例中,步骤S103可包括:在内存中查询是否存在与所接收的交易服务编码匹配的报文压缩模板。报文压缩模板可以是应用数据库中的数据库表,包括下述字段:交易服务编码、Xpath表达式、Xpath编号和元素值等。例如,对于上面描述的交易服务编码A05811000,在内存中查询是否存在与本次接收到的交易服务编码A05811000相同的报文压缩模板。若存在,说明本次接收的交易报文不是首次接收到的报文,在本次报文之前,已经有该交易服务编码的XML报文被处理,则执行步骤S104。若不存在,则可以在数据库中查到是否存在与所接收的交易服务编码匹配的报文压缩模板,若存在,则将在数据库中查找到的该交易服务编码的报文压缩模板保存到内存,并执行步骤S104,若未查找到,则执行步骤S105。
S104,根据预定压缩规则生成压缩字符串,并在所述解析出的Xpath表达式与匹配的报文压缩模板中的Xpath表达式不相同时,更新所述数据库中的报文压缩模板表。
如上所述,在查找到该交易服务编码匹配的报文压缩模板后,根据预定的压缩规则生成压缩字符串,例如,可以根据匹配的报文压缩模板将解析出的Xpath表达式替换为Xpath编码。以下述的例子为例:
可压缩为如下形式:
1=abc$n2=15
即:编号=元素值$n编号=元素值$n编号=元素值......
其中$n为根据系统报文特点自定义的分隔符,用于分隔每个xpath编号及其对应元素值。
如上所述,在一些实施例中,XML报文可解析出包含多个Xpath表达式及其元素值的列表,列表中的一些Xpath表达式可以与报文压缩模板中的 Xpath表达式相同,而另外一些Xpath表达式与模板中的Xpath表达式不同,对于不同的Xpath表达式,需要更新数据库中的报文压缩模板表,具体而言,可包括:在数据库的报文压缩模板表中增加解析出的与模板中的Xpath表达式不同的Xpath表达式,并将所述不同的Xpath表达式对应的Xpath编码增加。在一些实施例中,不同的Xpath表达式为一个,那么在这种情况下,Xpath编码在原来模板列表的基础上加1。在另外一些实施例中,不同Xpath表达式为多个,在这种情况下,Xpath编码在原来模板列表的基础上增加多个。例如,报文压缩模板中已经存储有下列信息:
后续又收到了交易服务编码为A05811000的XML,如图3所示。报文中除了的Xpath表达式多了一个/TX/DD,其他没有编码(元素值变化无需考虑),那么在报文压缩模板中增加:
交易编号 xpath编号 xpath表达式 元素值
A05811000 4 /TX/DD abc4
本发明实施例,对于同一交易服务编码,每次遇到不同的Xpath路径表达式,均保存到该交易服务编码的报文压缩模板,利用同一交易对应报文差别较小的特点,确保每个交易对应的压缩模板不会无限扩展,同时也保证模板包含了压缩过的报文对应路径的全集。
在本发明的一些实施例中,将更新的报文压缩模板保存到数据库和内存,例如,可以将报文压缩模板同时保存到数据库和内存。在一些实施例中,可以将报文压缩模板仅保存到数据库。将报文压缩模板在内存中备份,可以避免通过多次数据库读取来获得报文压缩模板,再次使用报文压缩模板时可以直接在内存中读取,在大量报文模板的场景下,提高了报文压缩模板的读取效率。在报文压缩模板的读取中,优先查找内存中的报文压缩模板,内存中没有找到模板的情形下,在数据库中查找,在数据库中还是找不到的情况,作为新模板数据保存。
S105,将所接收的交易服务编码和解析出的Xpath表达式和元素值存储到数据库作为报文压缩模板,根据预定压缩规则生成压缩字符串。
在一些实施例中,在数据库中查找不到该交易服务编码对应的报文压缩模板时,将本次解析得到的一个或多个Xpath表达式和元素值按照顺序编码存储到数据库作为该交易服务编码的报文压缩模板,同时还可以在内存备份该交易服务编码的报文压缩模板,方便下次需要获取报文压缩模板时快速地获取报文压缩模板。
在将本次解析得到的Xpath表达式和元素值保存到报文压缩模板之后,根据预定压缩规则生成压缩字符串,具体而言,将解析出的Xpath表达式替换为Xpath编码,而得到更少字符表达的XML的报文信息。
在本发明的一些实施例中,对于XML报文中出现的重复的xpath路径表达式,需要对其进行区分才能保证解压缩后的报文与原始报文一致,处理方式为对重复路径作编号处理,例如:
<foo>
<bar>abc1</bar>
<bar>abc2</bar>
<bar>abc3</bar>
</foo>
其xpath表达式为/foo/bar,/foo/bar@@1,/foo/bar@@2三个,即对重复路径加@@后顺序编号处理。对于以上报文,其对应压缩模板为:
需要说明的是,@@仅是用于举例说明的分割符号,在其他实施例中,本领域技术人员可以选择其他的分割符号。
在一些实施例中,xml报文中有些属性元素存在类型,例如<LIST1 type="G">,此时作如下处理:将xpath路径中该元素的名称前加#type="G"#,即该元素名称变为:#type="G"#LIST1,解压缩的时候再将元素类型解压出来从而达到无损报文的目的。在已知系统报文中元素类型比较单一的情形下,可以直接用特殊符号标记即可,如#LIST1。
在一些实施例中,报文中存在CDATA形式的元素值,则在解析的Xpath 表达式中利用预定的特殊符号(例如,#LIST1)标记,解压时对特殊符号特殊处理即可。图4给出了java程序判断报文是否存在CDATA形式元素的示例代码(采用dom4j的API)。
在本发明的一些实施例中,报文压缩模板是采用java的HashMap数据结构,其中,HashMap的key用于存储交易服务编码,value为对象数组。其中,对象数组可存储有两个数据结构对象,所述两个数据结构对象同时保存了交易服务编码对应的的Xpath表达式和元素值列表集合。两个数据结构对象为 HashMap和ArrayList。模板数据的具体保存可以采用如下的伪代码:
HashMap<xpath路径,String[xpath路径编号,元素值]>()
ArrayList<String[xpath路径,xpath路径编号,元素值]>()
利用两种数据结构保存相同集合数据,能够同时获得HashMap的搜索查询的高效性以及ArrayList的顺序遍历的高效性,当认为可以顺序遍历时优先使用ArrayList顺序遍历,当只能通过查询方式获得数据时使用HashMap的查询功能。
在另外一些实施例中,可以仅采用HashMAP一种数据结构即可。
在本发明的一些实施例中,对于XML报文中解析出的Xpath表达式和元素值列表与匹配的报文压缩模板中的Xpath表达式和元素值列表存在多个连续相同的情形,采用所述匹配的报文压缩模板中所述多个连续相同的Xpath 表达式对应的Xpath编码的起始编码和结束编码进行表示。也就是说,当被压缩报文字对应xpath路径列表中存在连续与模板中对应xpath路径及元素值相同的情况,则将此连续部分进一步压缩为连续部分对应的起始编号加结束编号。例如,
对于交易编号为A05811000的xml报文为图3所示。
压缩后的字符串表示为:1-4
其中"-"为分隔符,其两边的数字表示模板对应的起始位置和终止位置,1-4 表示此报文与模板中xpath编号从1到4的连续数据对应相同(包括xpath路径和元素值都相同),同样对于压缩后字符串:
1=aa$n2-30$n31=bb
其可分解为:
1=aa
2-30
31=bb
其解压缩含义为:取模板中编号为1的xpath,将其对应节点元素值赋值 aa,然后去模板中编号从第2到30的xpath及其对应元素值,然后取模板中编号为31的xpath,将其对应节点元素值赋值bb,之后将以上xpath列表还原为xml文档即为压缩前原报文。
本发明实施例通过对压缩报文中与模板中的对应Xpath部分和元素值连续相同的部分,进行进一步的压缩,能够进一步提高压缩的效率。
在本发明的一些实施例中,使用java的同步锁关键字synchronized对需要同步的部分代码块加锁的方式实现多线程支持。在线程并发状态下,有两处可能出现不安全情况:第一处为使用HashMap保存模板,java的HashMap 为线程不安全的,使用其保存模板数据时需要加同步锁,伪代码如下:
synchronized(全局锁变量){
模板Map.put(交易编号,交易编号对应模板数据);
}
这里在put方法上直接加锁,而不是将提取模板数据的get方法直接加锁,而是采用如下策略:若get出的模板包含当前待压缩报文xpath的全集,则直接利用此模板进行压缩,若取得的模板不包含待压缩报文xpath的全集或没有取到模板,则无法直接进行压缩,此时对程序加锁后再一次尝试提取模板,若取到模板则利用此模板进行压缩。此策略在不影响程序并发同步的基础上提升了并发度,提高了报文的处理速度。需要同步的第二处为涉及到数据库存取操作的代码块,即当内存中没有找到模板数据时,需要查询数据库,同时若数据库也没有找到时则保存入数据库,同步锁伪代码如下:
synchronized(交易编号){
数据库操作相关代码
}
此处将交易编号作为锁变量达到局部锁的效果,即只针对同一个交易编号实现同步,多个交易编号对应报文仍然可以并发执行,此策略基于不同交易编号对应的压缩模板互不影响的特点,提升了报文压缩的并发程度。
本发明实施例提供的方法,在开发程序考虑多线程调用的问题,在可能存在调用冲突的地方加了锁,确保多线程安全并发调用。
在一些实施例中,本发明的方法还可包括:将压缩字符串利用gzip压缩算法进行二次压缩,从而进一步提高XML报文的压缩效率。解压时首先利用 gzip解压字符串,然后再进行还原xml文档树的过程,压缩和解压缩函数的主要代码如图5和图6所示。
在本发明的一种实施例中,XML报文的压缩过程如下:
1、压缩程序接受到调用者传入的待压缩报文的交易编号和报文字符串;
2、将报文字符串解析为xpath列表;
3、根据交易编号查找内存中是否存在对应压缩模板,若存在则进入第6 步,不存在则进行下一步;
4、查找数据库中是否存在该交易编号对应压缩模板,若存在则调入内存并进入第6步,不存在则进行下一步;
5、将第2步解析出来的xpath列表保存入数据库和内存,根据压缩规则生成压缩字符串,进入第7步;
6、逐条扫描第2步解析出来的xpath列表,找到压缩模板中与之相同的 xpath的对应编号,根据压缩规则(编号替换xpath)生成压缩字符串,此过程中若发现xpath列表中存在模板中没有的xpath,则将其编号设置为当前模板编号最大值加一,并将xpath和编号及元素值一同保存入数据库和内存;
7、调用gzip压缩接口,将压缩字符串用gzip进行二次压缩后返回给调用者。
解压缩程序的基本流程为:
1、解压缩程序接受到调用者传入的待解压报文的交易编号和报文字符串;
2、通过调用gzip接口将报文字符串进行解压后传入下一步;
3、根据交易编号查找内存中是否存在对应压缩模板,若存在则进入第5 步,不存在则进行下一步;
4、查找数据库中是否存在该交易编号对应压缩模板,若存在则调入内存并进入第5步,不存在则报错处理;
5、将第2步解压出来的字符串根据分隔符分隔并逐条扫描,找到压缩模板中与之对应的xpath编号,将该编号对应的xpath提取出来,所有xpath 都提取完成后进入下一步;
6、逐条处理上一步获得的xpath及对应的元素值,根据xml文档树还原规则将xpath列表还原为xml文档树;
7、将还原的文档树转换为字符串后返回给调用者
在本发明的一种实施例中,XML报文的解析方法包括:
采用递归方式的深度优先搜索遍历xml文档树,获取每个叶子节点的 xpath及其对应值。伪代码如下:
解析之前需要先获取文档树根节点,函数代码如图7所示。
对于反解析过程,即将xpath列表生成一个xml文档的过程比较复杂,基本方法如下:
1、将第一条被解析的xpath的第一个节点作为根节点,并将其后继所有节点依次加入文档树中;
2、从第二条xpath开始循环执行以下过程:对比并找到本条xpath中包含的一个节点,此节点与上一条xpath相同位置的节点不同但该节点的前一节点即父节点与该父节点对应上一条xpath中相同位置的节点相同,将此节点及其之后的节点加入到xml文档树的对应父节点下。
下面以一个简单例子说明以上过程:
对以下xpath列表:
TX/AA/BB
TX/AA/CC/DD
第一步将TX加入文档树作为根节点,AA作为TX的子节点加入树中, BB作为AA的字节点加入树中,此时完成了第一条xpath的还原过程。遍历第二条xpath,发现节点CC与对应位置的BB节点不同但其父节点都是AA,则将CC作为AA的子节点加入树中,再将DD作为CC的字节点加入树中即完成了文档树的还原。
将还原后的文档树输出为字符串的伪代码如图8所示。
本发明实施方式还提供一种计算机设备。如图9所示,计算机设备900 可包括存储器901和处理器902,其中,存储器901存储有计算机指令,处理器902配置为执行所述计算机指令以使计算机设备900实现上面所述的方法。
本发明实施方式还提供计算机可读的存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现上面所述的方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。

Claims (10)

1.一种XML文件处理方法,其特征在于,包括:
接收待压缩的XML报文和所述XML报文对应的交易服务编码;
将所述XML报文解析为Xpath表达式和元素值,其中,所述Xpath表达式为表示所述XML文件中节点路径的表达式;
查询是否存在与所接收的交易服务编码匹配的报文压缩模板,所述报文压缩模板包括下述字段:交易服务编码、Xpath表达式、Xpath编号和元素值,所述报文压缩模板是采用java的HashMap数据结构,
若未查询到匹配的报文压缩模板,则将所接收的交易服务编码和解析出的Xpath表达式和元素值存储到数据库作为报文压缩模板,根据预定压缩规则生成压缩字符串;
若查询到匹配的报文压缩模板,则根据预定压缩规则生成压缩字符串,并在所述解析出的Xpath表达式与匹配的报文压缩模板中的Xpath表达式不相同时,更新所述数据库中的报文压缩模板表;
其中,HashMap的key用于存储交易服务编码,value为对象数组,所述对象数组存储有两个数据结构对象,所述两个数据结构对象同时保存了交易服务编码对应的Xpath表达式和元素值列表集合;
其中,所述两个数据结构对象为HashMap和ArrayList。
2.根据权利要求1所述的方法,其特征在于,所述更新所述数据库中的报文压缩模板表包括:
在所述数据库中的报文压缩模板表中增加解析出的与所述报文压缩模板中的Xpath表达式不同的Xpath表达式,并将所述不同的Xpath编码增加。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述报文压缩模板表保存到所述数据库和内存。
4.根据权利要求1所述的方法,其特征在于,所述根据预定压缩规则生成压缩字符串包括:
根据匹配的报文压缩模板表将解析出的Xpath表达式替换为Xpath编码。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于XML报文中存在CDATA形式的元素值,在解析的Xpath表达式中采用预定特殊符号进行标记。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在HashMap报文压缩模板的保存中,在put方法加同步锁。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于XML报文中解析出的Xpath表达式和元素值列表与匹配的报文压缩模板中的Xpath表达式和元素值列表存在多个连续相同的情形,采用所述匹配的报文压缩模板中所述多个连续相同的Xpath表达式对应的Xpath编码的起始编码和结束编码进行表示。
8.根据权利要求1至7所述的方法,其特征在于,所述方法还包括:
对所述压缩字符串利用gzip压缩算法进行二次压缩。
9.一种计算机设备,包括存储器和处理器,其中
所述存储器,存储有计算机指令;
所述处理器,配置为执行所述计算机指令以使所述计算机设备实现权利要求1至8所述的方法。
10.一种计算机可读的存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现权利要求1至8所述的方法。
CN201810666574.0A 2018-06-26 2018-06-26 Xml文件处理方法、设备和存储介质 Active CN109241498B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810666574.0A CN109241498B (zh) 2018-06-26 2018-06-26 Xml文件处理方法、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810666574.0A CN109241498B (zh) 2018-06-26 2018-06-26 Xml文件处理方法、设备和存储介质

Publications (2)

Publication Number Publication Date
CN109241498A CN109241498A (zh) 2019-01-18
CN109241498B true CN109241498B (zh) 2023-08-15

Family

ID=65071961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810666574.0A Active CN109241498B (zh) 2018-06-26 2018-06-26 Xml文件处理方法、设备和存储介质

Country Status (1)

Country Link
CN (1) CN109241498B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487249B (zh) * 2020-11-27 2024-03-01 郑朗 一种可扩展标记语言xml文档压缩、解压方法及装置
CN113093992A (zh) * 2021-03-24 2021-07-09 深圳大普微电子科技有限公司 一种命令的解压方法、系统及固态硬盘
CN113076721B (zh) * 2021-04-09 2024-03-08 航天信息(广东)有限公司 一种基于XPath的编码长度控制方法以及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004302868A (ja) * 2003-03-31 2004-10-28 Nri & Ncc Co Ltd Xmlのタグ圧縮方法
CN1751492A (zh) * 2003-02-14 2006-03-22 捷讯研究有限公司 在网络通信中压缩报文的系统和方法
CN102096704A (zh) * 2010-12-29 2011-06-15 北京新媒传信科技有限公司 一种xml的压缩方法和装置
CN103186611A (zh) * 2011-12-30 2013-07-03 北大方正集团有限公司 一种压缩、解压及查询文档的方法、装置
CN103605730A (zh) * 2013-11-19 2014-02-26 山西三恒自动化设备有限公司 一种基于不定长标识码的xml的压缩方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1751492A (zh) * 2003-02-14 2006-03-22 捷讯研究有限公司 在网络通信中压缩报文的系统和方法
JP2004302868A (ja) * 2003-03-31 2004-10-28 Nri & Ncc Co Ltd Xmlのタグ圧縮方法
CN102096704A (zh) * 2010-12-29 2011-06-15 北京新媒传信科技有限公司 一种xml的压缩方法和装置
CN103186611A (zh) * 2011-12-30 2013-07-03 北大方正集团有限公司 一种压缩、解压及查询文档的方法、装置
CN103605730A (zh) * 2013-11-19 2014-02-26 山西三恒自动化设备有限公司 一种基于不定长标识码的xml的压缩方法和装置

Also Published As

Publication number Publication date
CN109241498A (zh) 2019-01-18

Similar Documents

Publication Publication Date Title
US11146286B2 (en) Compression of JavaScript object notation data using structure information
US7043686B1 (en) Data compression apparatus, database system, data communication system, data compression method, storage medium and program transmission apparatus
CN105893337B (zh) 用于文本压缩和解压缩的方法和设备
CN109241498B (zh) Xml文件处理方法、设备和存储介质
KR100614677B1 (ko) 구조화된 문서를 압축/복원하기 위한 방법
US20190196811A1 (en) Api specification generation
US20110219357A1 (en) Compressing source code written in a scripting language
US20070143664A1 (en) A compressed schema representation object and method for metadata processing
CN109104405B (zh) 二进制协议编码、解码方法和装置
CN112154420B (zh) 自动智能云服务测试工具
CN109710620B (zh) 数据存储方法、数据读取方法、设备和存储介质
US8838550B1 (en) Readable text-based compression of resource identifiers
Ferragina et al. On the bit-complexity of Lempel--Ziv compression
JP2004508647A (ja) 構造化文書の圧縮/解凍方法
US8341096B2 (en) System, method and computer program product for incremental learning of system log formats
JP2004536481A (ja) 構造化文書の木構造におけるパスの符号化および復号化方法
JP4231261B2 (ja) 同一性判定装置
JP2005215951A (ja) 文書データの符号化又は復号化方法及びそのプログラム
CN108959411B (zh) Etl任务的处理方法、装置和设备
CN116010147A (zh) 异常处理表的生成方法、系统、电子设备及存储介质
US20140149323A1 (en) System, method and computer program product for incremental learning of system log formats
CN113886482A (zh) 面向图数据库的数据自动入库方法、装置和设备
CN109992293B (zh) Android系统组件版本信息的组装方法及装置
CN114070471B (zh) 一种测试数据包传输方法、装置、系统、设备和介质
CN114125071B (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