CN108076010A - 一种xml报文解析方法及服务器 - Google Patents
一种xml报文解析方法及服务器 Download PDFInfo
- Publication number
- CN108076010A CN108076010A CN201610991747.7A CN201610991747A CN108076010A CN 108076010 A CN108076010 A CN 108076010A CN 201610991747 A CN201610991747 A CN 201610991747A CN 108076010 A CN108076010 A CN 108076010A
- Authority
- CN
- China
- Prior art keywords
- parsing
- xml message
- strategy
- target attribute
- objective attribute
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种XML报文解析方法及服务器。其中,所述方法包括:接收待解析的XML报文,并确定所述XML报文中预先设定要解析的目标属性ID;在预设的解析策略库中选取一条待匹配的解析策略,根据所述解析策略中包括的所述目标属性ID对应的检索位置标识判断所述解析策略是否命中;若判断获知所述解析策略命中,则输出所述XML报文中包括的与所述目标属性ID对应的属性值。所述服务器用于执行上述方法。本发明提供的XML报文解析方法及服务器,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。
Description
技术领域
本发明涉及信息技术领域,具体涉及一种XML报文解析方法及服务器。
背景技术
企业服务总线并不涉及业务处理逻辑,但是作为数据交互和服务调度的枢纽,对服务编排和服务路由等过程的处理效率,对整个系统的并发量和吞吐量起决定性的作用。
在对服务编排和服务路由等过程的处理中,需要获取可扩展的标识语言(Extensible Markup Language,以下简称XML)报文的个别属性字段,例如客户ID,发起方标识等。图1为现有技术XML报文的解析流程示意图,如图1所示,将XML报文整体进行解析,并对XML报文内容进行校验并对生成对象的进行处理。从以上解析过程中,可以得知,在对XML报文解析的过程中,解析过程需要遍历报文,进行字符串比较操作,查找相关的特征关键字。找到特征关键字以后,需要进行属性的堆栈入栈,并进行属性约束条件检查,对满足约束条件的数据按照校验结果生成相应的对象。当XML报文数据结构复杂和类型属性较多的情况下,解析XML报文将消耗大量的时间,而在企业服务总线相关的应用场景中,往往只需要使用到XML报文个别的属性字段,却需要遍历报文才可以获得,获取目标属性字段的效率较低。
因此,如何提出一种方法,能够提高对XML报文目标属性字段的解析效率成为业界亟待解决的重要课题。
发明内容
针对现有技术中的缺陷,本发明提供一种XML报文解析方法及服务器。
一方面,本发明提出一种XML报文解析方法,包括:
接收待解析的XML报文,并确定所述XML报文中预先设定要解析的目标属性ID;
在预设的解析策略库中选取一条待匹配的解析策略,根据所述解析策略中包括的所述目标属性ID对应的检索位置标识判断所述解析策略是否命中;所述解析策略命中的条件为:所述XML报文中与所述检索位置标识对应的预设范围内的字符串包括所述目标属性ID;
若判断获知所述解析策略命中,则输出所述XML报文中包括的与所述目标属性ID对应的属性值。
另一方面,本发明提供一种XML报文解析服务器,包括:
接收单元,用于接收待解析的XML报文,并确定所述XML报文中预先设定要解析的目标属性ID;
判断单元,用于在预设的解析策略库中选取一条待匹配的解析策略,根据所述解析策略中包括的所述目标属性ID对应的检索位置标识判断所述解析策略是否命中;所述解析策略命中的条件为:所述XML报文中与所述检索位置标识对应的预设范围内的字符串包括所述目标属性ID;
输出单元,用于若判断获知所述解析策略命中,则输出所述XML报文中包括的与所述目标属性ID对应的属性值。
本发明提供的XML报文解析方法及服务器,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术XML报文的解析流程示意图;
图2为本发明一实施例XML报文解析方法的流程示意图;
图3为本发明另一实施例XML报文解析方法的流程示意图;
图4为本发明又一实施例XML报文解析方法的流程示意图;
图5为本发明一实施例检索树的结构示意图;
图6为本发明一实施例XML报文解析服务器的结构示意图;
图7为本发明另一实施例XML报文解析服务器的结构示意图;
图8为本发明又一实施例XML报文解析服务器的结构示意图;
图9为本发明实施例电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为本发明一实施例XML报文解析方法的流程示意图,如图2所示,本发明提供的XML报文解析方法包括:
S201、接收待解析的XML报文,并确定所述XML报文中预先设定要解析的目标属性ID;
具体地,XML报文解析服务器接收待解析的XML报文,对于本发明实施例的应用场景,所述XML报文解析服务器只关心所述XML报文中的一部分属性ID,并对这部分属性ID进行预先设定,这部分预先设定的属性ID即目标属性ID。
S202、在预设的解析策略库中选取一条待匹配的解析策略,根据所述解析策略中包括的所述目标属性ID对应的检索位置标识判断所述解析策略是否命中;所述解析策略命中的条件为:所述XML报文中与所述检索位置标识对应的预设范围内的字符串包括所述目标属性ID;
具体地,为了提高对所述XML报文的处理效率,预先设定用于解析所述XML报文的解析策略库,所述解析策略库包含有解析策略。所述XML报文解析服务器在解析所述XML报文时,首先从所述解析策略库选取一条待匹配的解析策略,所述解析策略中包括所述目标属性ID对应的检索位置标识。所述检索位置标识包括位置值和检索标识。所述位置值为所述目标属性ID在所述XML报文中的绝对位置值或者比例值。所述检索标识表示所述目标属性ID的在所述XML报文的位置是从报文头开始计算还是报文尾开始计算,例如检索标识为1表示从报文头开始计算,检索标识为0表示从报文尾开始计算。所述XML报文解析服务器根据所述目标属性ID,在所述解析策略中查找到所述目标属性ID对应的检索位置标识,再根据所述检索位置标识判断所述解析策略是否命中。
所述XML报文解析服务器可以根据所述XML报文的长度和所述检索位置标识计算所述目标属性ID在所述XML报文中的检索位置。所述XML报文解析服务器在获得所述检索位置以后,获得所述检索位置预设范围内的字符串,再将所述字符串与所述目标属性ID比较,如果所述字符串包括所述目标属性ID,那么所述解析策略命中。所述预设范围根据实际情况进行设定,本发明实施例不作具体限定。
S203、若判断获知所述解析策略命中,则输出所述XML报文中包括的与所述目标属性ID对应的属性值。
具体地,所述XML报文解析服务器在判断获知所述解析策略命中后,将所述XML报文中包括的与所述目标属性ID对应的属性值输出。例如,可以采用key-value方式输出所述属性值,即输出由所述目标属性ID和其对应的属性值组成的数组,以key-value的方式输出可以减小内存的占用和创建销毁对象的操作,也减少系统回收内存的操作。
本发明提供的XML报文解析方法,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。
图3为本发明另一实施例XML报文解析方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,本发明提供的XML报文解析方法还包括:
S204、若判断获知所述解析策略没有命中,则在所述解析策略库中选取下一条待匹配的解析策略进行匹配。
具体地,所述XML报文解析服务器如果判断所述解析策略没有命中,那么从所述解析策略库中选取下一条解析策略,重复步骤S202,如果判断获知所述下一条解析策略命中,重复步骤S203输出与所述下一条解析策略对应的属性值。可理解的是,如果所述XML报文解析服务器判断获知所述下一条解析策略没有命中,那么所述XML报文解析服务器继续在所述解析策略库中选取解析策略进行匹配。
本发明提供的XML报文解析方法,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。
图4为本发明又一实施例XML报文解析方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,本发明提供的XML报文解析方法还包括:
S205、若所述解析策略库中所有的解析策略均没有命中,则根据所述XML报文和所述目标属性ID新建解析策略;其中,所述根据所述XML报文和所述目标属性ID新建解析策略包括:
根据预设的检索树构建所述新建解析策略的搜索路径;
根据所述目标属性ID和所述XML报文的长度计算所述目标属性ID的位置值,根据所述位置值生成对应的检索位置标识并储存在所述新建解析策略中。
具体地,所述XML报文解析服务器如果在所述解析策略库中没有选取到命中所述XML报文的解析策略,那么根据所述XML报文和所述目标属性ID建立新的解析策略。所述新建解析策略的搜索路径与预设的检索树相同,均由属性ID构成,并包含所述目标属性ID。所述XML报文解析服务器根据所述目标属性ID在所述新建解析策略中的搜索路径在所述XML报文中检索所述目标属性ID,并根据所述XML报文的长度计算所述目标属性ID的位置值,然后根据所述位置值生成对应的检索位置标识,再将所述检索位置标识与所述目标属性ID对应储存在所述新建解析策略中。
本发明提供的XML报文解析方法,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。而对于没有与当前XML报文匹配的解析策略的情况,可以通过新建解析策略,提高后续出现类似报文的解析效率。
在上述各实施例的基础上,进一步地,所述预设的检索树由如下步骤建立:
根据设定的XML报文的属性ID层次,建立每个所述目标属性ID的搜索路径;
将所有搜索路径按照所述设定的XML报文的属性ID层次顺序排序,使得相近的搜索路径彼此相邻;
将排序后的每个搜索路径逐一拆解且合并相同的属性ID,以建立所述预设的检索树。
具体地,所述XML报文解析服务器所需解析的XML报文的属性ID层次是预先设定的,需要解析的所述目标属性ID也是预先设定的,根据设定的XML报文的属性ID层次,可以建立每个所述目标属性ID的搜索路径。例如预先设定的XML报文的属性ID层次如下:
<A>
<a></a>
<b></b>
<c></c>
<d></d>
<e></e>
</A>
其中,c和e是所述目标属性ID,建立c的搜索路径排序如下:A,c;建立e的搜索路径排序如下:A,e。对于其它属性ID则不再关注。
所述XML报文解析服务器将建立的所有搜索路径按照所述设定的XML报文的属性ID层次顺序排序,例如,对于c和e的搜索路径按照下面顺序排列:
A,c
A,e
排序后,相近的搜索路径彼此相邻。
接着,先根据第一个目标属性ID搜索路径,构建原始检索树,然后逐一拆解下一个目标属性ID搜索路径,在所述原始检索树中查找是否存在相同的属性ID,如果不存在,将不存在的属性ID添加到原始检索树对应的位置上,构成新的检索树,否则不做任何处理。将所有的所述目标属性ID处理完成后,构成了最终的检索树,也就建立了所述预设的检索树。图5为本发明一实施例检索树的结构示意图,如图5所示,示出了根据c和e的搜索路径建立的检索树。
本发明提供的XML报文解析方法,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。而通过预设的检索树,有助于解析策略的快速建立,从而提高对XML报文的解析效率。
在上述各实施例的基础上,进一步地,根据所述目标属性ID和所述XML报文的长度计算所述目标属性ID的位置值包括:
根据所述目标属性ID和所述XML报文的长度,计算所述目标属性ID在所述XML报文中的绝对位置值,根据所述绝对位置值生成对应的检索位置标识,并将所述新建解析策略标记为绝对位置策略;或者
根据所述目标属性ID和所述XML报文的长度,计算所述目标属性ID在所述XML报文中出现位置的比例值,根据所述比例值生成对应的检索位置标识,并将所述新建解析策略标记为比例策略。
具体地,所述XML报文解析服务器可以从所述XML报文头计算所述目标属性ID在所述XML报文中的绝对位置值,再计算所述XML报文的长度中值,所述长度中值等于所述XML报文的长度的一半,若判断所述目标属性ID的绝对位置值小于等于所述长度中值,则将所述绝对位置值作为所述目标属性ID的位置值,将从所述XML报文头计算所述目标属性ID的绝对位置值对应的标识作为检索标识,生成所述目标属性ID对应的检索位置标识;否则,所述XML报文解析服务器将所述XML报文的长度减去所述绝对位置值的结果作为所述目标属性ID的位置值,将从所述XML报文尾计算所述目标属性ID的绝对位置值对应的标识作为检索标识,生成所述目标属性ID对应的检索位置标识。然后将所述新建解析策略标记为绝对位置策略。或者
所述XML报文解析服务器可以从所述XML报文头计算所述目标属性ID在所述XML报文中的绝对位置值,再计算所述绝对位置值占所述XML报文的长度的比例值,将所述比例值作为所述目标属性ID的位置值,将从所述XML报文头计算所述目标属性ID的比例值对应的标识作为检索标识,生成所述目标属性ID对应的检索位置标识,然后将所述新建解析策略标记为比例策略。
具体建立绝对位置策略还是比例策略根据实际情况进行选择,本发明实施例不作具体限定。通常优先建立绝对位置策略。如果在预设的解析策略库已有的解析策略中,命中次数最多的解析策略是比例策略,优先新建比例策略。如果已有的解析策略中命中次数最多的为绝对位置策略,则检查是否存在比例策略,如果不存在,则新建比例策略;否则,新建绝对位置策略。
本发明提供的XML报文解析方法,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。根据不同的位置值计算方法,建立不同的解析策略,以适应不同的XML报文,提高XML报文解析效率。
在上述各实施例的基础上,进一步地,本发明提供的XML报文解析方法还包括:
若判断获知所述解析策略命中,则将所述解析策略对应的经验值加1;其中,每条解析策略都有对应的经验值,所述经验值大的解析策略优先被选取。
具体地,所述XML报文解析服务器在判断获知所述解析策略命中后,将所述解析策略对应的经验值加1。在预设的解析策略库中的每条解析策略都有对应的经验值,所述经验值大的解析策略在所述XML报文解析服务器在预设的解析策略库中选取待匹配的解析策略时,优先被选取。这样最常用的解析策略总是被第一个选取,有利于快速解析报文。可理解的是,为了防止系统长期运行以后,已有的解析策略经验值很大,导致对新的XML报文一直优先采用已有的解析策略进行解析,降低对新的XML报文的解析效率,可以手工或者定期清空解析策略,例如,每日或每周自动清解析策略,以建立适用于新的XML报文的解析策略。
本发明提供的XML报文解析方法,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。通过对解析策略配置经验值,使常用的解析策略优先被选用,进一步提高了XML报文的解析效率。
图6为本发明一实施例XML报文解析服务器的结构示意图,如图6所示,本法提供的XML报文解析服务器包括接收单元601、判断单元602和输出单元603,其中:
接收单元601用于接收待解析的XML报文,并确定所述XML报文中预先设定要解析的目标属性ID;判断单元602用于在预设的解析策略库中选取一条待匹配的解析策略,根据所述解析策略中包括的所述目标属性ID对应的检索位置标识判断所述解析策略是否命中;所述解析策略命中的条件为:所述XML报文中与所述检索位置标识对应的预设范围内的字符串包括所述目标属性ID;输出单元603用于若判断获知所述解析策略命中,则输出所述XML报文中包括的与所述目标属性ID对应的属性值。
具体地,接收单元601接收待解析的XML报文,对于本发明实施例的应用场景,所述XML报文解析服务器只关心所述XML报文中的一部分属性ID,并对这部分属性ID进行预先设定,这部分预先设定的属性ID即目标属性ID。
具体地,为了提高对所述XML报文的处理效率,预先设定用于解析所述XML报文的解析策略库,所述解析策略库包含有解析策略。判断单元602在解析所述XML报文时,首先从所述解析策略库选取一条待匹配的解析策略,所述解析策略中包括所述目标属性ID对应的检索位置标识。所述检索位置标识包括位置值和检索标识。所述位置值为所述目标属性ID在所述XML报文中的绝对位置值或者比例值。所述检索标识表示所述目标属性ID的在所述XML报文的位置是从报文头开始计算还是报文尾开始计算,例如检索标识为1表示从报文头开始计算,检索标识为0表示从报文尾开始计算。判断单元602根据所述目标属性ID,在所述解析策略中查找到所述目标属性ID对应的检索位置标识,再根据所述检索位置标识判断所述解析策略是否命中。
判断单元602可以根据所述XML报文的长度和所述检索位置标识计算所述目标属性ID在所述XML报文中的检索位置。判断单元602在获得所述检索位置以后,获得所述检索位置预设范围内的字符串,再将所述字符串与所述目标属性ID比较,如果所述字符串包括所述目标属性ID,那么所述解析策略命中。所述预设范围根据实际情况进行设定,本发明实施例不作具体限定。
输出单元603在判断获知所述解析策略命中后,将所述XML报文中包括的与所述目标属性ID对应的属性值输出。例如,可以采用key-value方式输出所述属性值,即输出由所述目标属性ID和其对应的属性值组成的数组,以key-value的方式输出可以减小内存的占用和创建销毁对象的操作,也减少系统回收内存的操作。
本发明提供的XML报文解析服务器,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。
在上述各实施例的基础上,进一步地,所述判断单元602还用于:
若判断获知所述解析策略没有命中,则在所述解析策略库中选取下一条待匹配的解析策略进行匹配。
具体地,判断单元602如果判断所述解析策略没有命中,那么从所述解析策略库中选取下一条解析策略,如果判断获知所述下一条解析策略命中,输出单元603输出与所述下一条解析策略对应的属性值。可理解的是,如果判断单元602判断获知所述下一条解析策略没有命中,判断单元602继续在所述解析策略库中选取解析策略进行匹配。
本发明提供的XML报文解析服务器,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。
图7为本发明另一实施例XML报文解析服务器的结构示意图,如图7所示,本发明提供的XML报文解析服务器还包括新建单元604:
新建单元604用于若所述解析策略库中所有的解析策略均没有命中,则根据所述XML报文和所述目标属性ID新建解析策略;其中,所述新建单元具体包括构建子单元6041和生成子单元6042,其中:构建子单元6041用于根据预设的检索树构建所述新建解析策略的搜索路径;生成子单元6042用于根据所述目标属性ID和所述XML报文的长度计算所述目标属性ID的位置值,根据所述位置值生成对应的检索位置标识并储存在所述新建解析策略中。
具体地,所述XML报文解析服务器如果在所述解析策略库中没有选取到命中所述XML报文的解析策略,那么新建单元604根据所述XML报文和所述目标属性ID建立新的解析策略。
构建子单元6041构建的所述新建解析策略的搜索路径与预设的检索树相同,均由属性ID构成,并包含所述目标属性ID。
生成子单元6042根据所述目标属性ID在所述新建解析策略中的搜索路径在所述XML报文中检索所述目标属性ID,并根据所述XML报文的长度计算所述目标属性ID的位置值,然后根据所述位置值生成对应的检索位置标识,再将所述检索位置标识与所述目标属性ID对应储存在所述新建解析策略中。
本发明提供的XML报文解析服务器,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。而对于没有与当前XML报文匹配的解析策略的情况,可以通过新建解析策略,提高后续出现类似报文的解析效率。
图8为本发明又一实施例XML报文解析服务器的结构示意图,如图8所示,本发明提供的XML报文解析服务器还包括:
累计单元605用于若判断获知所述解析策略命中,则将所述解析策略对应的经验值加1;其中,每条解析策略都有对应的经验值,所述经验值大的解析策略优先被选取。
具体地,累计单元605在判断获知所述解析策略命中后,将所述解析策略对应的经验值加1。在预设的解析策略库中的每条解析策略都有对应的经验值,所述经验值大的解析策略在所述XML报文解析服务器在预设的解析策略库中选取待匹配的解析策略时,优先被选取。这样最常用的解析策略总是被第一个选取,有利于快速解析报文。可理解的是,为了防止系统长期运行以后,已有的解析策略经验值很大,导致对新的XML报文一直优先采用已有的解析策略进行解析,降低对新的XML报文的解析效率,可以手工或者定期清空解析策略,例如,每日或每周自动清解析策略,以建立适用于新的XML报文的解析策略。
本发明提供的XML报文解析服务器,由于能够通过在预设的解析策略库中选取解析策略对待解析的XML报文进行目标属性ID的解析并输出目标属性ID对应的属性值,提高了XML报文的解析效率。通过给解析策略配置经验值,使常用的解析策略优先被选用,进一步提高了XML报文的解析效率。
本发明提供的XML报文解析服务器的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图9为本发明实施例电子设备的实体结构示意图,如图9所示,本发明提供的电子设备包括:
处理器(processor)901、存储器(memory)902和通信总线903;
其中,
所述处理器901和存储器902通过所述通信总线903完成相互间的通信;
所述处理器901用于调用所述存储器902中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:接收待解析的XML报文,并确定所述XML报文中预先设定要解析的目标属性ID;在预设的解析策略库中选取一条待匹配的解析策略,根据所述解析策略中包括的所述目标属性ID对应的检索位置标识判断所述解析策略是否命中;所述解析策略命中的条件为:所述XML报文中与所述检索位置标识对应的预设范围内的字符串包括所述目标属性ID;若判断获知所述解析策略命中,则输出所述XML报文中包括的与所述目标属性ID对应的属性值。
本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收待解析的XML报文,并确定所述XML报文中预先设定要解析的目标属性ID;在预设的解析策略库中选取一条待匹配的解析策略,根据所述解析策略中包括的所述目标属性ID对应的检索位置标识判断所述解析策略是否命中;所述解析策略命中的条件为:所述XML报文中与所述检索位置标识对应的预设范围内的字符串包括所述目标属性ID;若判断获知所述解析策略命中,则输出所述XML报文中包括的与所述目标属性ID对应的属性值。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如接收待解析的XML报文,并确定所述XML报文中预先设定要解析的目标属性ID;在预设的解析策略库中选取一条待匹配的解析策略,根据所述解析策略中包括的所述目标属性ID对应的检索位置标识判断所述解析策略是否命中;所述解析策略命中的条件为:所述XML报文中与所述检索位置标识对应的预设范围内的字符串包括所述目标属性ID;若判断获知所述解析策略命中,则输出所述XML报文中包括的与所述目标属性ID对应的属性值。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种XML报文解析方法,其特征在于,包括:
接收待解析的XML报文,并确定所述XML报文中预先设定要解析的目标属性ID;
在预设的解析策略库中选取一条待匹配的解析策略,根据所述解析策略中包括的所述目标属性ID对应的检索位置标识判断所述解析策略是否命中;所述解析策略命中的条件为:所述XML报文中与所述检索位置标识对应的预设范围内的字符串包括所述目标属性ID;
若判断获知所述解析策略命中,则输出所述XML报文中包括的与所述目标属性ID对应的属性值。
2.根据权利要求1所述的方法,其特征在于,还包括:
若判断获知所述解析策略没有命中,则在所述解析策略库中选取下一条待匹配的解析策略进行匹配。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
若所述解析策略库中所有的解析策略均没有命中,则根据所述XML报文和所述目标属性ID新建解析策略;其中,所述根据所述XML报文和所述目标属性ID新建解析策略包括:
根据预设的检索树构建所述新建解析策略的搜索路径;
根据所述目标属性ID和所述XML报文的长度计算所述目标属性ID的位置值,根据所述位置值生成对应的检索位置标识并储存在所述新建解析策略中。
4.根据权利要求3所述的方法,其特征在于,所述预设的检索树由如下步骤建立:
根据设定的XML报文的属性ID层次,建立每个所述目标属性ID的搜索路径;
将所有搜索路径按照所述设定的XML报文的属性ID层次顺序排序,使得相近的搜索路径彼此相邻;
将排序后的每个搜索路径逐一拆解且合并相同的属性ID,以建立所述预设的检索树。
5.根据权利要求3所述的方法,其特征在于,根据所述目标属性ID和所述XML报文的长度计算所述目标属性ID的位置值包括:
根据所述目标属性ID和所述XML报文的长度,计算所述目标属性ID在所述XML报文中的绝对位置值,根据所述绝对位置值生成对应的检索位置标识,并将所述新建解析策略标记为绝对位置策略;或者
根据所述目标属性ID和所述XML报文的长度,计算所述目标属性ID在所述XML报文中出现位置的比例值,根据所述比例值生成对应的检索位置标识,并将所述新建解析策略标记为比例策略。
6.根据权利要求1所述的方法,其特征在于,还包括:
若判断获知所述解析策略命中,则将所述解析策略对应的经验值加1;其中,每条解析策略都有对应的经验值,所述经验值大的解析策略优先被选取。
7.一种XML报文解析服务器,其特征在于,包括:
接收单元,用于接收待解析的XML报文,并确定所述XML报文中预先设定要解析的目标属性ID;
判断单元,用于在预设的解析策略库中选取一条待匹配的解析策略,根据所述解析策略中包括的所述目标属性ID对应的检索位置标识判断所述解析策略是否命中;所述解析策略命中的条件为:所述XML报文中与所述检索位置标识对应的预设范围内的字符串包括所述目标属性ID;
输出单元,用于若判断获知所述解析策略命中,则输出所述XML报文中包括的与所述目标属性ID对应的属性值。
8.根据权利要求7所述的服务器,其特征在于,所述判断单元还用于:
若判断获知所述解析策略没有命中,则在所述解析策略库中选取下一条待匹配的解析策略进行匹配。
9.根据权利要求7或8所述的服务器,其特征在于,还包括:
新建单元,用于若所述解析策略库中所有的解析策略均没有命中,则根据所述XML报文和所述目标属性ID新建解析策略;其中,所述新建单元具体包括:
构建子单元,用于根据预设的检索树构建所述新建解析策略的搜索路径;
生成子单元,用于根据所述目标属性ID和所述XML报文的长度计算所述目标属性ID的位置值,根据所述位置值生成对应的检索位置标识并储存在所述新建解析策略中。
10.根据权利要求7所述的服务器,其特征在于,还包括:
累计单元,用于若判断获知所述解析策略命中,则将所述解析策略对应的经验值加1;其中,每条解析策略都有对应的经验值,所述经验值大的解析策略优先被选取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610991747.7A CN108076010B (zh) | 2016-11-10 | 2016-11-10 | 一种xml报文解析方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610991747.7A CN108076010B (zh) | 2016-11-10 | 2016-11-10 | 一种xml报文解析方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108076010A true CN108076010A (zh) | 2018-05-25 |
CN108076010B CN108076010B (zh) | 2020-09-08 |
Family
ID=62154684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610991747.7A Active CN108076010B (zh) | 2016-11-10 | 2016-11-10 | 一种xml报文解析方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108076010B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933712A (zh) * | 2019-03-06 | 2019-06-25 | 北京思特奇信息技术股份有限公司 | 一种报文数据的提取方法及系统 |
CN112328838A (zh) * | 2020-10-30 | 2021-02-05 | 中国民航信息网络股份有限公司 | 一种报文解析预处理方法及其相关装置 |
CN113904864A (zh) * | 2018-12-28 | 2022-01-07 | 阿波罗智联(北京)科技有限公司 | 用于解析报文的方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060282820A1 (en) * | 2005-06-09 | 2006-12-14 | International Business Machines Corporation | COBOL syntax for native XML file parsing and file generation |
CN1896992A (zh) * | 2006-06-15 | 2007-01-17 | Ut斯达康通讯有限公司 | 基于应用定制解析xml文档的方法及装置 |
CN101415026A (zh) * | 2008-11-28 | 2009-04-22 | 闻泰集团有限公司 | 动态内容分发客户端xml格式数据的解析方法 |
CN102622444A (zh) * | 2012-03-15 | 2012-08-01 | 深圳市同洲视讯传媒有限公司 | 一种xml报文处理方法和装置 |
CN103902539A (zh) * | 2012-12-25 | 2014-07-02 | 三星电子(中国)研发中心 | 可扩展标记语言数据解析方法及装置 |
CN104753891A (zh) * | 2013-12-31 | 2015-07-01 | 中国移动通信集团湖南有限公司 | 一种xml报文解析方法及装置 |
-
2016
- 2016-11-10 CN CN201610991747.7A patent/CN108076010B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060282820A1 (en) * | 2005-06-09 | 2006-12-14 | International Business Machines Corporation | COBOL syntax for native XML file parsing and file generation |
CN1896992A (zh) * | 2006-06-15 | 2007-01-17 | Ut斯达康通讯有限公司 | 基于应用定制解析xml文档的方法及装置 |
CN101415026A (zh) * | 2008-11-28 | 2009-04-22 | 闻泰集团有限公司 | 动态内容分发客户端xml格式数据的解析方法 |
CN102622444A (zh) * | 2012-03-15 | 2012-08-01 | 深圳市同洲视讯传媒有限公司 | 一种xml报文处理方法和装置 |
CN103902539A (zh) * | 2012-12-25 | 2014-07-02 | 三星电子(中国)研发中心 | 可扩展标记语言数据解析方法及装置 |
CN104753891A (zh) * | 2013-12-31 | 2015-07-01 | 中国移动通信集团湖南有限公司 | 一种xml报文解析方法及装置 |
Non-Patent Citations (1)
Title |
---|
张博等: "一种支持高效XML路径查询的自适应结构索引", 《软件学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113904864A (zh) * | 2018-12-28 | 2022-01-07 | 阿波罗智联(北京)科技有限公司 | 用于解析报文的方法和装置 |
CN113992391A (zh) * | 2018-12-28 | 2022-01-28 | 阿波罗智联(北京)科技有限公司 | 用于解析报文的方法和装置 |
CN113992391B (zh) * | 2018-12-28 | 2023-12-29 | 阿波罗智联(北京)科技有限公司 | 用于解析报文的方法和装置 |
CN109933712A (zh) * | 2019-03-06 | 2019-06-25 | 北京思特奇信息技术股份有限公司 | 一种报文数据的提取方法及系统 |
CN112328838A (zh) * | 2020-10-30 | 2021-02-05 | 中国民航信息网络股份有限公司 | 一种报文解析预处理方法及其相关装置 |
CN112328838B (zh) * | 2020-10-30 | 2024-01-26 | 中国民航信息网络股份有限公司 | 一种报文解析预处理方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108076010B (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737899B (zh) | 一种基于机器学习的智能合约安全漏洞检测方法 | |
US7426496B2 (en) | Assisted form filling | |
US8635197B2 (en) | Systems and methods for efficient development of a rule-based system using crowd-sourcing | |
CN111783100A (zh) | 基于图卷积网络对代码图表示学习的源代码漏洞检测方法 | |
CN107704512A (zh) | 基于社交数据的金融产品推荐方法、电子装置及介质 | |
CN112181804A (zh) | 一种参数校验方法、设备以及存储介质 | |
CN108076010A (zh) | 一种xml报文解析方法及服务器 | |
CN107247767A (zh) | 一种通过格式化数据文件导入数据库的方法及装置 | |
CN109388568B (zh) | 代码测试方法和装置 | |
CN110472063A (zh) | 社交媒体数据处理方法、模型训练方法及相关装置 | |
CN116541887B (zh) | 一种大数据平台数据安全保护方法 | |
CN107426211A (zh) | 网络攻击的检测方法及装置、终端设备和计算机存储介质 | |
CN116595534A (zh) | 一种solidity智能合约的缺陷检测方法 | |
CN107463578A (zh) | 应用下载量统计数据去重方法、装置和终端设备 | |
CN114201199B (zh) | 基于信息安全大数据的防护升级方法及信息安全系统 | |
CN115577147A (zh) | 可视化情报图谱检索方法、装置、电子设备及存储介质 | |
WO2023024474A1 (zh) | 一种数据集的确定方法、装置、计算机设备以及存储介质 | |
CN115098362A (zh) | 页面测试方法、装置、电子设备以及存储介质 | |
CN104008136A (zh) | 一种文本查找的方法和装置 | |
CN113626826A (zh) | 智能合约安全检测方法、系统、设备、终端及应用 | |
CN109670554B (zh) | 深度学习系统中数据集标注的管理方法和装置 | |
CN112883372A (zh) | 跨站脚本攻击检测方法和装置 | |
CN107766384A (zh) | 一种确定页面发布时间的方法和装置 | |
CN112613072A (zh) | 基于档案大数据的信息管理方法、管理系统及管理云平台 | |
CN107436728A (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 |