CN106021199A - 一种面向业务数据的字符串报文处理方法和装置 - Google Patents
一种面向业务数据的字符串报文处理方法和装置 Download PDFInfo
- Publication number
- CN106021199A CN106021199A CN201610320117.7A CN201610320117A CN106021199A CN 106021199 A CN106021199 A CN 106021199A CN 201610320117 A CN201610320117 A CN 201610320117A CN 106021199 A CN106021199 A CN 106021199A
- Authority
- CN
- China
- Prior art keywords
- data object
- character string
- dictionary
- sub
- current location
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/131—Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种面向业务数据的字符串报文处理方法和装置,所述方法包括通过分解方法,对待处理字符串报文进行分解,对待处理字符串报文中的描述业务数据部分与描述报文结构的部分进行区分。通过将待处理字符串报文的报文结构部分与业务数据部分分开,使业务处理人员可以仅关注和处理业务数据部分,而无需关注报文结构部分,因此便于业务处理人员更加方便、高效的定位与分析业务数据。提高了业务人员定位和处理业务数据的效率。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种面向业务数据的字符串报文处理方法和装置。
背景技术
报文是商业银行实现交易的基本数据单元。在商业银行交易***软件测试过程中,业务人员需要模拟交易报文进行测试。由于商业银行交易报文具备其特有格式,如果业务人员对报文格式不熟悉,很难完成对交易报文的模拟。所以,为了完成对交易的测试,业务人员往往需要花很长时间去学习特定报文的格式。使得业务处理人员定位和处理业务数据的效率低。
发明内容
有鉴于此,本发明实施例提供一种面向业务数据的字符串报文处理方法和装置,以提高业务处理人员定位和处理业务数据的效率。
为实现上述目的,本发明实施例提供如下技术方案:
一种面向业务数据的字符串报文处理方法,包括:
通过分解方法,对待处理字符串报文进行分解,对待处理字符串报文中的描述业务数据部分与描述报文结构的部分进行区分。
优选的,上述面向业务数据的字符串报文处理方法中,所述对待处理字符串报文中的描述业务数据部分与描述报文结构的部分进行区分,包括:
将所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中,所述数据对象字典的存储数据包括:数据对象ID和数据对象的值;
将所述待处理字符串报文中的描述子部分导入预建立的描述子字典中,所述描述子字典的存储数据包括:描述子ID和描述子的值。
优选的,上述面向业务数据的字符串报文处理方法中,所述将所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中,包括:
S101、建立数据对象字典和扫描子字典;
S102、初始化待处理字符串报文的当前位置为第一个字符,执行步骤S103;
S103、从当前位置扫描待处理字符串报文直至扫描到一个数据对象,如果到达所述待处理字符串报文的末尾,则转步骤S107;否则继续执行步骤S104;
S104、判断所述数据对象字典中是否存在扫描到的所述数据对象,如果是,执行步骤S106;如果否,执行步骤S105;
步骤S105、为扫描到的数据对象分配一个ID,并将该数据对象加入数据对象字典,转步骤S106;
S106、将所述数据对象尾字符的下一个字符作为当前位置,并转步骤S103;
S107、判断所述数据对象字典中的条目数是否为0,如果是,报错并结束全部流程,否则,输出所述数据对象字典。
优选的,上述面向业务数据的字符串报文处理方法中,所述将所述待处理字符串报文中的描述子部分导入预建立的描述子字典中,包括:
S108、初始化所述待处理字符串报文的当前位置为第一个字符;执行步骤S109;
S109、判断所述当前位置是否为所述字符串的末尾,如果是,执行步骤S113;否则,执行步骤S110;
步骤S110、从当前位置开始扫描所述待处理字符串报文,直至扫描到一个数据对象,将从所述当前位置到所述数据对象之间的子字符串记为一个描述子,执行步骤S111;
步骤S111、判断所述描述子是否存在于所述描述子字典中,如果是,执行步骤S113;否则,执行步骤S112;
步骤S112、为所述描述子分配一个新ID,并将所述描述子加入描述子字典,执行步骤S112’;
步骤S112’、将所述数据对象尾字符的下一个字符作为当前位置,执行步骤S109;
步骤S113、输出描述子字典。
优选的,上述面向业务数据的字符串报文处理方法中,还包括:
步骤S114、建立一个标记队列,所述标记队列的元素为数据对象ID和描述子ID;
当将所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中、将所述待处理字符串报文中的描述子部分导入预建立的描述子字典中之后,还包括:
步骤S115、将描述子ID和数据对象ID依次***所述标记队列的尾部。
优选的,上述面向业务数据的字符串报文处理方法中,还包括:
依据所述标记队列、数据对象字典和描述子字典对所述待处理字符串报文进行重组,得到输出字符串。
优选的,上述面向业务数据的字符串报文处理方法中,依据所述标记队列、数据对象字典和描述子字典对所述待处理字符串报文进行重组,得到输出字符串,包括:
步骤S116、初始化输出字符串为空字符串;初始化标记队列的当前位置为1,执行步骤S117;
S117、判断所述标记队列的当前位置是否超过所述标记队列的大小,如果是,执行步骤S119,否则,执行步骤S118;
步骤S118、从标记队列中取出当前位置的元素,如果该元素是数据对象ID,则根据所述数据对象ID在数据对象字典中查找对应的值,在所述输出字符串的尾部加上该值;如果该元素是描述子ID,则根据所述描述子ID在描述子字典中查找对应值,在所述输出字符串的尾部加上该值,将所述标记队列的当前位置加1,重复执行步骤S117;
步骤S119、输出所述输出字符串。
一种面向业务数据的字符串报文处理装置,包括:
分解单元,用于通过分解方法,对待处理字符串报文进行分解,对待处理字符串报文中的描述业务数据部分与描述报文结构的部分进行区分。
优选的,上述面向业务数据的字符串报文处理装置中,所述分解单元,包括:
子分解单元,用于将所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中,将所述待处理字符串报文中的描述子部分导入预建立的描述子字典中;
第一存储单元,用于存储预建立的数据对象字典,所述数据对象字典的存储数据包括:数据对象ID和数据对象的值;
第二存储单元,用于存储预建立的描述子字典,所述描述子字典的存储数据包括:描述子ID和描述子的值。
优选的,上述面向业务数据的字符串报文处理装置中,所述子分解单元,包括:
字典建立单元,用于建立数据对象字典和扫描子字典;
第一初始化单元,用于初始化待处理字符串报文的当前位置为第一个字符,向所述第一扫描单元输出触发信号;
第一扫描单元,用于当获取到触发信号后,从当前位置扫描待处理字符串报文直至扫描到一个数据对象,如果到达所述待处理字符串报文的末尾,向报错单元输出触发信号,否则向第一匹配单元输出触发信号;
第一匹配单元,用于当获取到触发信号后,判断所述数据对象字典中是否存在扫描到的所述数据对象,如果是,向第一当前位置更新单元输出触发信号,否则,向第一数据导入单元输出触发信号;
第一数据导入单元,用于当获取到触发信号后,为扫描到的数据对象分配一个ID,并将该数据对象加入数据对象字典,向所述第一当前位置更新单元输出触发信号;
第一当前位置更新单元,用于将所述数据对象尾字符的下一个字符作为当前位置,向所述第一扫描单元输出触发信号;
报错单元,用于当获取到触发信号后,判断所述数据对象字典中的条目数是否为0,如果是,报错并结束全部流程,否则,输出所述数据对象字典。
优选的,上述面向业务数据的字符串报文处理装置中,所述子分解单元,还包括:
第二初始化单元,用于初始化所述待处理字符串报文的当前位置为第一个字符,向当前位置判断单元输出触发信号;
当前位置判断单元,用于判断所述当前位置是否为所述字符串的末尾,如果是,向描述子字典输出单元输出触发信号,否则,向第二扫描单元输出触发信号;
所述第二扫描单元,用于当获取到触发信号后,从当前位置开始扫描所述待处理字符串报文,直至扫描到一个数据对象,将从所述当前位置到所述数据对象之间的子字符串记为一个描述子,向第二匹配单元输出触发信号;
所述第二匹配单元,用于当获取到触发信号后,判断该描述子是否存在于所述描述子字典中,如果是,向描述子字典输出单元输出触发信号,否则,向第二数据导入单元输出触发信号;
第二数据导入单元,用于为所述描述子分配一个新ID,并将所述描述子加入描述子字典,向第二当前位置更新单元输出触发信号;
第二当前位置更新单元,用于当获取到触发信号后,将所述数据对象尾字符的下一个字符作为当前位置,向所述当前位置判断单元输出触发信号;
描述子字典输出单元,用于当获取到触发信号后,输出描述子字典。
优选的,上述面向业务数据的字符串报文处理装置中,子分解单元还包括:
标记单元,用于建立一个标记队列,将描述子ID和数据对象ID依次***所述标记队列的尾部。
优选的,上述面向业务数据的字符串报文处理装置中,还包括:
重组单元,用于依据所述标记队列、数据对象字典和描述子字典对所述待处理字符串报文进行重组,得到输出字符串。
优选的,上述面向业务数据的字符串报文处理装置中,所述重组单元包括:
第三初始化单元,用于初始化输出字符串为空字符串;初始化标记队列的当前位置为1,向队列判断单元输出触发信号;
队列判断单元,用于判断所述标记队列的当前位置是否超过所述标记队列的大小,如果是,向字符串输出单元输出触发信号,否则,向元素提取单元输出触发信号;
元素提取单元,用于从标记队列中取出当前位置的元素,如果该元素是数据对象ID,则根据所述数据对象ID在数据对象字典中查找对应的值,在所述输出字符串的尾部加上该值;如果该元素是描述子ID,则根据所述描述子ID在描述子字典中查找对应值,在所述输出字符串的尾部加上该值,将所述标记队列的当前位置加1,向所述队列判断单元输出触发信号;
字符串输出单元,用于输出所述输出字符串。
基于上述技术方案,本发明实施例提供的面向业务数据的字符串报文处理方法和装置,通过将待处理字符串报文的报文结构部分与业务数据部分分开,使业务处理人员可以仅关注和处理业务数据部分,而无需关注报文结构部分,因此便于业务处理人员更加方便、高效的定位与分析业务数据。提高了业务人员定位和处理业务数据的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种面向业务数据的字符串报文处理方法的流程图;
图2为本申请实施例公开的数据对象部分的提取流程示意图;
图3为本申请实施例公开的描述子部分的提取流程示意图;
图4为本申请实施例公开的一种分解后的字符串报文的重组方法;
图5为本申请实施例公开的一种面向业务数据的字符串报文处理装置的结构示意图;
图6为本申请实施例公开的一种子分解单元的数据对象提取部分的结构示意图;
图7为本申请实施例公开的一种子分解单元的描述子提取部分的结构示意图;
图8为本申请另一实施例公开的一种面向业务数据的字符串报文处理装置的结构示意图;
图9为本申请实施例公开的一种重组单元的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
申请人通过研究发现,事实上,报文的主要内容包括业务数据和报文组织结构两部分,业务人员在进行测试时仅需要关注业务数据即可,而对报文中组织结构的那部分内容无需关注。
针对于此,本发明包含了一种面向业务数据的字符串报文分解和重构方法,其特点在于:可以对包含业务数据的待处理字符串报文进行处理,通过分解方法,将所述待处理字符串报文中描述业务数据的部分与描述报文结构的部分进行区分;通过重构方法,可以还原报文字符串。使得待处理字符串报文中的业务数据与结构数据的分离问题,便于业务处理人员更加方便、高效的定位与分析业务数据。
为了方便用户理解所述待处理字符串报文的结构组成,本申请先对所述待处理字符串的结构组成进行说明:
每个待处理字符串报文均包含两类基础元素:描述子(descriptor)和数据对象(data object)。
所述描述子定义的是待处理字符串报文中描述报文结构的部分。
所述数据对象定义的是待处理字符串报文中具备业务含义、描述业务数据的部分。
所述描述子和数据对象均包括两个属性:ID和值。
所述描述子与数据对象的ID都应当是非空且唯一的。
所述描述子是待处理字符串报文的子字符串,在分解前未知,所述描述子的值可以是空字符串或者非空字符串。
所述数据对象是待处理字符串报文的子字符串,在分解前已知,数据对象的值必须是非空字符串。
图1为本申请实施例公开的一种面向业务数据的字符串报文处理方法的流程图,参见图1,本申请实施例公开的面向业务数据的字符串报文处理方法包括:
A:获取待处理字符串报文数据;
B:通过分解方法,对待处理字符串报文进行分解,对待处理字符串报文中的描述业务数据部分与描述报文结构的部分进行区分;
具体的该部分可以包括:通过采用分解法,对待处理字符串报文进行分解,将分解得到的所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中,所述数据对象字典的存储数据包括:数据对象ID和数据对象的值;将所述待处理字符串报文中的描述子部分导入预建立的描述子字典中,所述描述子字典的存储数据包括:描述子ID和描述子的值。
C:输出区分后的业务数据部分和报文结构部分。
参见本申请上述实施例公开的技术方案,该方案通过将待处理字符串报文的报文结构部分与业务数据部分分开,使业务处理人员可以仅关注和处理业务数据部分,而无需关注报文结构部分,因此便于业务处理人员更加方便、高效的定位与分析业务数据。提高了业务人员定位和处理业务数据的效率。
图2为本申请实施例公开的数据对象部分的提取流程示意图;
具体的,参见图2,上述方法中,所述将所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中,包括:
S101、建立数据对象字典和扫描子字典,将建立的数据对象字典和扫描子字典作为所述预建立的数据对象字典和扫描子字典;
S102、初始化待处理字符串报文的当前位置为第一个字符,执行步骤S103;
在本步骤中,将所述待处理字符串报文的第一个字符作为所述待处理字符串报文的当前处理位置(即,当前位置)。
S103、从当前位置扫描待处理字符串报文直至扫描到一个数据对象,如果到达所述待处理字符串报文的末尾,则转步骤S107;否则继续执行步骤S104;
在本步骤中,由确定的当前位置开始,对所述待处理字符串报文进行扫描,直至扫描到数据对象为止,由于所述数据对象在对所述待处理字符串报文进行分解之前就已知的,因此,可实现判断是否扫描到所述数据对象。
S104、判断所述数据对象字典中是否存在扫描到的所述数据对象,如果是,执行步骤S106;如果否,执行步骤S105;
在本步骤中,需要判断扫描到的数据对象是否已经存储在所述数据对象字典中,当判断结果为是时,则表明对本次扫描到的对象数据的已经提取完毕;
步骤S105、为扫描到的数据对象分配一个ID,并将该数据对象加入数据对象字典,转步骤S106;
在本步骤中,当判断扫描到的数据对象未包含在所述数据对象字典中时,对该数据对象分配一个唯一的ID,并将该数据对象加入至所述数据对象字典中。
S106、将所述数据对象尾字符的下一个字符作为当前位置,并转步骤S103;
在本步骤中,设置所述当前位置为数据对象尾字符的下一个字符,扫描到第一个数据对象后,并对该数据对象进行上述处理后,还需对该待处理字符串报文的后续部分进行扫描,扫描后续字符串中的数据对象,因此,当所述待处理字符串报文扫描到第一个数据对象后,将该数据对象尾字符的下一个字符作为当前位置,继续对所述待处理字符串报文的后续部分进行扫描。
S107、判断所述数据对象字典中的条目数是否为0,如果是,报错并结束全部流程,否则,输出所述数据对象字典;
在本步骤中,当对所述待处理字符串报文的全部字段均扫描完成后,对所述数据对象字典中的元素数量进行判断,当条目数为0时(所述数据对象字典中无数据对象时),表明未扫描到所述待处理字符串报文所包含的数据对象,***进行报错,如果所述条目数不为0,则表征数据对象提取过程正常,输出所述数据对象字典。
图3为本申请实施例公开的描述子部分的提取流程示意图;
当然,本申请除了对所述数据对象部分的提取过程进行详细说明之外,本申请还对所述描述子部分的提取过程进行了详细说明,参见图3,所述描述子部分的提取过程包括:
S108、初始化所述待处理字符串报文的当前位置为第一个字符;执行步骤S109;
本步骤与所述步骤S102类似,均为将所述待处理字符串报文的第一个字符作为所述待处理字符串报文的当前处理位置(即,当前位置)。
S109、判断所述当前位置是否为所述字符串的末尾,如果是,执行步骤S113;否则,执行步骤S110;
在本步骤中,当所述当前位置为所述字符串的末尾时,表示描述子提取已经完成;
步骤S110、从当前位置开始扫描所述待处理字符串报文,直至扫描到一个数据对象,将从所述当前位置到所述数据对象之间的子字符串记为一个描述子,执行步骤S111;
在本步骤中,由确定的当前位置开始,对所述待处理字符串报文进行扫描,直至扫描到数据对象为止,本次扫描的当前位置与扫描到的所述数据对象之间的字符串即为描述子。
步骤S111、判断所述描述子是否存在于所述描述子字典中,如果是,执行步骤S112’;否则,执行步骤S112;
步骤S112、为所述描述子分配一个新ID,并将所述描述子加入描述子字典,执行步骤S112’;
在本步骤中,当判断获取的描述子未包含在所述描述子字典中时,对描述子分配一个唯一的ID,并将该描述子加入至所述描述子字典中。
步骤S112’、将所述数据对象尾字符的下一个字符作为当前位置,执行步骤S109;
在本步骤中,设置所述当前位置为当前数据对象尾字符的下一个字符,扫描到第一个数据对象后,并对得到的描述子进行上述处理后,还需读取所述待处理字符串报文的后续部分的描述子,因此,当所述待处理字符串报文扫描到第一个数据对象后,将该数据对象尾字符的下一个字符作为当前位置,继续对所述待处理字符串报文的后续部分进行扫描。
步骤S113、输出描述子字典。
可以理解的是,进一步的,本申请还对所述数据对象和描述子的提取的先后顺序进行了限定,即,先进行所述数据对象提取后进行扫描子提取。并且,对所述待处理字符串报文进行上述分解处理后,为了方便后续过程中对分解结果进行处理,本申请上述实施例公开的方法还可以包括:
步骤S114、建立一个标记队列,所述标记队列的元素为数据对象ID和描述子ID;
优选的,所述步骤S114位于步骤S107与步骤S108之间;
当将所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中、将所述待处理字符串报文中的描述子部分导入预建立的描述子字典中之后,还包括:
步骤S115、将描述子ID和数据对象ID依次***所述标记队列的尾部。
进一步的,所述步骤S115可以具***于所述步骤S112与步骤S112’之间。
除了对上述待处理字符串报文进行分解之外,为了方便***读取,本申请上述实施例公开的方法还可以包括对分解后的待处理字符串报文进行重组,具体的,该过程可以为:
依据所述标记队列、数据对象字典和描述子字典对所述待处理字符串报文进行重组,得到输出字符串。
图4为本申请实施例公开的一种分解后的字符串报文的重组方法;
具体的,本申请还公开了一种分解后的字符串报文重组的具体过程,参见图4,包括:
步骤S116、初始化输出字符串为空字符串;初始化标记队列的当前位置为1,执行步骤S117;
步骤S117、判断所述标记队列的当前位置是否超过所述标记队列的大小,如果是,执行步骤S119,否则,执行步骤S118;
步骤S118、从标记队列中取出当前位置的元素,如果该元素是数据对象ID,则根据所述数据对象ID在所述数据对象字典中查找与该ID对应的值,并在所述输出字符串的尾部加上该值;如果该元素是描述子ID,则根据所述描述子ID在描述子字典中查找该ID对应值,在所述输出字符串的尾部加上该值;最后,将所述标记队列的当前位置加1,重复执行步骤S117;
步骤S119、输出所述输出字符串。
与上述方法相对应,本申请还公开了一种面向业务数据的字符串报文处理装置,两者可相互借鉴,参见图5,该装置包括:
采集单元100,用于获取待处理字符串报文数据;
分解单元200,用于通过分解方法,对待处理字符串报文进行分解,对待处理字符串报文中的描述业务数据部分与描述报文结构的部分进行区分;
输出单元300,用于输出区分后的业务数据部分和报文结构部分。
与上述方法相对应,参见图5,所述分解单元200可以包括:
子分解单元210,用于将所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中,将所述待处理字符串报文中的描述子部分导入预建立的描述子字典中;
第一存储单元220,用于存储预建立的数据对象字典,所述数据对象字典的存储数据包括:数据对象ID和数据对象的值;
第二存储单元230,用于存储预建立的描述子字典,所述描述子字典的存储数据包括:描述子ID和描述子的值。
与上述方法相对应,参见图6,所述子分解单元210,可以包括:
字典建立单元221,用于建立数据对象字典和扫描子字典;
第一初始化单元222,用于初始化待处理字符串报文的当前位置为第一个字符,向所述第一扫描单元223输出触发信号;
所述第一初始化单元222,用于将所述待处理字符串报文的第一个字符作为所述待处理字符串报文的当前处理位置(即,当前位置);
第一扫描单元223,用于当获取到触发信号后,从当前位置扫描待处理字符串报文直至扫描到一个数据对象,如果到达所述待处理字符串报文的末尾,向报错单元227输出触发信号,否则向第一匹配单元224输出触发信号;
所述第一扫描单元具体用于由确定的当前位置开始,对所述待处理字符串报文进行扫描,直至扫描到数据对象为止,由于所述数据对象在对所述待处理字符串报文进行分解之前就已知的,因此,可实现判断是否扫描到所述数据对象;
第一匹配单元224,用于当获取到触发信号后,判断所述数据对象字典中是否存在扫描到的所述数据对象,如果是,向第一当前位置更新单元226输出触发信号,否则,向第一数据导入单元225输出触发信号;
所述第一匹配单元224需要判断扫描到的数据对象是否已经存储在所述数据对象字典中,当判断结果为是时,则表明对本次扫描到的对象数据的已经提取完毕;
第一数据导入单元225,用于当获取到触发信号后,为扫描到的数据对象分配一个ID,并将该数据对象加入数据对象字典,向所述第一当前位置更新单元226输出触发信号;
第一数据导入单元225当判断扫描到的数据对象未包含在所述数据对象字典中时,对该数据对象分配一个唯一的ID,并将该数据对象加入至所述数据对象字典中;
第一当前位置更新单元226,用于将所述待处理字符串报文的当前位置作为被扫描到的数据对象尾字符的下一个字符,将所述数据对象头字符的上一个字符作为当前位置,向所述第一扫描单元223输出触发信号;
所述第一当前位置更新单元226用于设置所述当前位置为数据对象尾字符的下一个字符。当扫描到第一个数据对象后,并对该数据对象进行上述处理后,还需对该待处理字符串报文的后续部分进行扫描,扫描后续字符串中的数据对象,因此,当所述待处理字符串报文扫描到第一个数据对象后,将该数据对象尾字符的下一个字符作为当前位置,继续对所述待处理字符串报文的后续部分进行扫描。
报错单元227,用于当获取到触发信号后,判断所述数据对象字典中的条目数是否为0,如果是,报错并结束全部流程,否则,输出所述数据对象字典;
当对所述待处理字符串报文的全部字段均扫描完成后,所述报错单元227对所述数据对象字典中的元素数量进行判断,当条目数为0时(所述数据对象字典中无数据对象时),表明未扫描到所述待处理字符串报文所包含的数据对象,***进行报错,如果所述条目数不为0,则表征数据对象提取过程正常,输出所述数据对象字典。
与上述方法相对应,参见图7,所述子分解单元210,还可以包括:
第二初始化单元228,用于初始化所述待处理字符串报文的当前位置为第一个字符,向当前位置判断单元229输出触发信号;
第二初始化单元228具体用于将所述待处理字符串报文的第一个字符作为所述待处理字符串报文的当前处理位置(即,当前位置);
当前位置判断单元229,用于判断所述当前位置是否为所述字符串的末尾,如果是,向描述子字典输出单元235输出触发信号,否则,向第二扫描单元231输出触发信号;
所述第二扫描单元231,用于当获取到触发信号后,从当前位置开始扫描所述待处理字符串报文,直至扫描到一个数据对象,将从所述当前位置到所述数据对象之间的子字符串记为一个描述子,向第二匹配单元232输出触发信号;
所述第二扫描单元231由确定的当前位置开始,对所述待处理字符串报文进行扫描,直至扫描到数据对象为止,本次扫描的当前位置与扫描到的所述数据对象之间的字符串即为描述子;
所述第二匹配单元232,用于当获取到触发信号后,判断该描述子是否存在于所述描述子字典中,如果是,向第二当前位置更新单元234输出触发信号,否则,向第二数据导入单元233输出触发信号;
第二数据导入单元233,用于为所述描述子分配一个新ID,并将所述描述子加入描述子字典后,向第二当前位置更新单元234输出触发信号;
所述第二数据导入单元233用于当判断获取的描述子未包含在所述描述子字典中时,对描述子分配一个唯一的ID,并将该描述子加入至所述描述子字典中;
第二当前位置更新单元234,用于当获取到触发信号后,将所述待处理字符串报文的当前位置作为所述数据对象尾字符的下一个字符,将所述数据对象头字符的上一个字符作为当前位置,向所述当前位置判断单元229输出触发信号;
第二当前位置更新单元234具体用于设置所述当前位置为当前数据对象尾字符的下一个字符。扫描到第一个数据对象后,并对得到的描述子进行上述处理后,还需读取所述待处理字符串报文的后续部分的描述子,因此,当所述待处理字符串报文扫描到第一个数据对象后,将该数据对象尾字符的下一个字符作为当前位置,继续对所述待处理字符串报文的后续部分进行扫描;
描述子字典输出单元235,用于当获取到触发信号后,输出描述子字典。
与上述方法相对应,所述子分解单元210还可以包括:
标记单元,用于建立一个标记队列,将描述子ID和数据对象ID依次***所述标记队列的尾部;所述标记单元可以设置在所述第二数据导入单元233与第二当前位置更新单元234之间。
与上述方法相对应,参见图8,本申请上述实施例公开的装置中,还可以包括:
重组单元400,用于依据所述标记队列、数据对象字典和描述子字典对所述待处理字符串报文进行重组,得到输出字符串;
此时,所述输出单元300还用于输出重组后的输出字符串。
与上述方法相对应,参见图9,所述重组单元400具体可以包括:
第三初始化单元410,用于初始化输出字符串为空字符串;初始化标记队列的当前位置为1,向队列判断单元420输出触发信号;
队列判断单元420,用于判断所述标记队列的当前位置是否超过所述标记队列的大小,如果是,向字符串输出单元440输出触发信号,否则,向元素提取单元430输出触发信号;
元素提取单元430,用于从标记队列中取出当前位置的元素,如果该元素是数据对象ID,则根据所述数据对象ID在数据对象字典中查找对应的值,在所述输出字符串的尾部加上该值;如果该元素是描述子ID,则根据所述描述子ID在描述子字典中查找对应值,在所述输出字符串的尾部加上该值,将所述标记队列的当前位置加1,向所述队列判断单元420输出触发信号;
字符串输出单元440,用于输出所述输出字符串。
为了描述的方便,描述以上***时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种面向业务数据的字符串报文处理方法,其特征在于,包括:
通过分解方法,对待处理字符串报文进行分解,对待处理字符串报文中的描述业务数据部分与描述报文结构的部分进行区分。
2.根据权利要求1所述的面向业务数据的字符串报文处理方法,其特征在于,所述对待处理字符串报文中的描述业务数据部分与描述报文结构的部分进行区分,包括:
将所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中,所述数据对象字典的存储数据包括:数据对象ID和数据对象的值;
将所述待处理字符串报文中的描述子部分导入预建立的描述子字典中,所述描述子字典的存储数据包括:描述子ID和描述子的值。
3.根据权利要求2所述的面向业务数据的字符串报文处理方法,其特征在于,所述将所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中,包括:
S101、建立数据对象字典和扫描子字典;
S102、初始化待处理字符串报文的当前位置为第一个字符,执行步骤S103;
S103、从当前位置扫描待处理字符串报文直至扫描到一个数据对象,如果到达所述待处理字符串报文的末尾,则转步骤S107;否则继续执行步骤S104;
S104、判断所述数据对象字典中是否存在扫描到的所述数据对象,如果是,执行步骤S106;如果否,执行步骤S105;
步骤S105、为扫描到的数据对象分配一个ID,并将该数据对象加入数据对象字典,转步骤S106;
S106、将所述数据对象尾字符的下一个字符作为当前位置,并转步骤S103;
S107、判断所述数据对象字典中的条目数是否为0,如果是,报错并结束全部流程,否则,输出所述数据对象字典。
4.根据权利要求2所述的面向业务数据的字符串报文处理方法,其特征在于,所述将所述待处理字符串报文中的描述子部分导入预建立的描述子字典中,包括:
S108、初始化所述待处理字符串报文的当前位置为第一个字符;执行步骤S109;
S109、判断所述当前位置是否为所述字符串的末尾,如果是,执行步骤S113;否则,执行步骤S110;
步骤S110、从当前位置开始扫描所述待处理字符串报文,直至扫描到一个数据对象,将从所述当前位置到所述数据对象之间的子字符串记为一个描述子,执行步骤S111;
步骤S111、判断所述描述子是否存在于所述描述子字典中,如果是,执行步骤S113;否则,执行步骤S112;
步骤S112、为所述描述子分配一个新ID,并将所述描述子加入描述子字典,执行步骤S112’;
步骤S112’、将所述数据对象尾字符的下一个字符作为当前位置,执行步骤S109;
步骤S113、输出描述子字典。
5.根据权利要求2所述的面向业务数据的字符串报文处理方法,其特征在于,还包括:
步骤S114、建立一个标记队列,所述标记队列的元素为数据对象ID和描述子ID;
当将所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中、将所述待处理字符串报文中的描述子部分导入预建立的描述子字典中之后,还包括:
步骤S115、将描述子ID和数据对象ID依次***所述标记队列的尾部。
6.根据权利要求5所述的面向业务数据的字符串报文处理方法,其特征在于,还包括:
依据所述标记队列、数据对象字典和描述子字典对所述待处理字符串报文进行重组,得到输出字符串。
7.根据权利要求6所述的面向业务数据的字符串报文处理方法,其特征在于,依据所述标记队列、数据对象字典和描述子字典对所述待处理字符串报文进行重组,得到输出字符串,包括:
步骤S116、初始化输出字符串为空字符串;初始化标记队列的当前位置为1,执行步骤S117;
S117、判断所述标记队列的当前位置是否超过所述标记队列的大小,如果是,执行步骤S119,否则,执行步骤S118;
步骤S118、从标记队列中取出当前位置的元素,如果该元素是数据对象ID,则根据所述数据对象ID在数据对象字典中查找对应的值,在所述输出字符串的尾部加上该值;如果该元素是描述子ID,则根据所述描述子ID在描述子字典中查找对应值,在所述输出字符串的尾部加上该值,将所述标记队列的当前位置加1,重复执行步骤S117;
步骤S119、输出所述输出字符串。
8.一种面向业务数据的字符串报文处理装置,其特征在于,包括:
分解单元,用于通过分解方法,对待处理字符串报文进行分解,对待处理字符串报文中的描述业务数据部分与描述报文结构的部分进行区分。
9.根据权利要求8所述的面向业务数据的字符串报文处理装置,其特征在于,所述分解单元,包括:
子分解单元,用于将所述待处理字符串报文中的数据对象部分导入预建立的数据对象字典中,将所述待处理字符串报文中的描述子部分导入预建立的描述子字典中;
第一存储单元,用于存储预建立的数据对象字典,所述数据对象字典的存储数据包括:数据对象ID和数据对象的值;
第二存储单元,用于存储预建立的描述子字典,所述描述子字典的存储数据包括:描述子ID和描述子的值。
10.根据权利要求9所述的面向业务数据的字符串报文处理装置,其特征在于,所述子分解单元,包括:
字典建立单元,用于建立数据对象字典和扫描子字典;
第一初始化单元,用于初始化待处理字符串报文的当前位置为第一个字符,向所述第一扫描单元输出触发信号;
第一扫描单元,用于当获取到触发信号后,从当前位置扫描待处理字符串报文直至扫描到一个数据对象,如果到达所述待处理字符串报文的末尾,向报错单元输出触发信号,否则向第一匹配单元输出触发信号;
第一匹配单元,用于当获取到触发信号后,判断所述数据对象字典中是否存在扫描到的所述数据对象,如果是,向第一当前位置更新单元输出触发信号,否则,向第一数据导入单元输出触发信号;
第一数据导入单元,用于当获取到触发信号后,为扫描到的数据对象分配一个ID,并将该数据对象加入数据对象字典,向所述第一当前位置更新单元输出触发信号;
第一当前位置更新单元,用于将所述数据对象尾字符的下一个字符作为当前位置,向所述第一扫描单元输出触发信号;
报错单元,用于当获取到触发信号后,判断所述数据对象字典中的条目数是否为0,如果是,报错并结束全部流程,否则,输出所述数据对象字典。
11.根据权利要求9所述的面向业务数据的字符串报文处理装置,其特征在于,所述子分解单元,还包括:
第二初始化单元,用于初始化所述待处理字符串报文的当前位置为第一个字符,向当前位置判断单元输出触发信号;
当前位置判断单元,用于判断所述当前位置是否为所述字符串的末尾,如果是,向描述子字典输出单元输出触发信号,否则,向第二扫描单元输出触发信号;
所述第二扫描单元,用于当获取到触发信号后,从当前位置开始扫描所述待处理字符串报文,直至扫描到一个数据对象,将从所述当前位置到所述数据对象之间的子字符串记为一个描述子,向第二匹配单元输出触发信号;
所述第二匹配单元,用于当获取到触发信号后,判断该描述子是否存在于所述描述子字典中,如果是,向描述子字典输出单元输出触发信号,否则,向第二数据导入单元输出触发信号;
第二数据导入单元,用于为所述描述子分配一个新ID,并将所述描述子加入描述子字典,向第二当前位置更新单元输出触发信号;
第二当前位置更新单元,用于当获取到触发信号后,将所述数据对象尾字符的下一个字符作为当前位置,向所述当前位置判断单元输出触发信号;
描述子字典输出单元,用于当获取到触发信号后,输出描述子字典。
12.根据权利要求9所述的面向业务数据的字符串报文处理装置,其特征在于,子分解单元还包括:
标记单元,用于建立一个标记队列,将描述子ID和数据对象ID依次***所述标记队列的尾部。
13.根据权利要求12所述的面向业务数据的字符串报文处理装置,其特征在于,还包括:
重组单元,用于依据所述标记队列、数据对象字典和描述子字典对所述待处理字符串报文进行重组,得到输出字符串。
14.根据权利要求13所述的面向业务数据的字符串报文处理装置,其特征在于,所述重组单元包括:
第三初始化单元,用于初始化输出字符串为空字符串;初始化标记队列的当前位置为1,向队列判断单元输出触发信号;
队列判断单元,用于判断所述标记队列的当前位置是否超过所述标记队列的大小,如果是,向字符串输出单元输出触发信号,否则,向元素提取单元输出触发信号;
元素提取单元,用于从标记队列中取出当前位置的元素,如果该元素是数据对象ID,则根据所述数据对象ID在数据对象字典中查找对应的值,在所述输出字符串的尾部加上该值;如果该元素是描述子ID,则根据所述描述子ID在描述子字典中查找对应值,在所述输出字符串的尾部加上该值,将所述标记队列的当前位置加1,向所述队列判断单元输出触发信号;
字符串输出单元,用于输出所述输出字符串。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610320117.7A CN106021199B (zh) | 2016-05-13 | 2016-05-13 | 一种面向业务数据的字符串报文处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610320117.7A CN106021199B (zh) | 2016-05-13 | 2016-05-13 | 一种面向业务数据的字符串报文处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106021199A true CN106021199A (zh) | 2016-10-12 |
CN106021199B CN106021199B (zh) | 2019-02-15 |
Family
ID=57097152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610320117.7A Active CN106021199B (zh) | 2016-05-13 | 2016-05-13 | 一种面向业务数据的字符串报文处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106021199B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0757336B1 (en) * | 1995-08-04 | 2000-11-22 | Belle Gate Investment B.V. | Data exchange systems comprising portable data processing units |
CN1455901A (zh) * | 2000-10-06 | 2003-11-12 | 佳能株式会社 | Xml编码方案 |
CN101848148A (zh) * | 2010-04-21 | 2010-09-29 | 中国工商银行股份有限公司 | 应用于金融报文语言的数据传输处理***、装置及方法 |
CN101854391A (zh) * | 2010-05-25 | 2010-10-06 | 南京邮电大学 | 一种基于对等网络的阿瑞斯协议分析***的实现方法 |
CN102075432A (zh) * | 2011-01-25 | 2011-05-25 | 上海聚欣网络科技有限公司 | 一种用于发送及接收报文的方法、装置、设备及*** |
CN102571611A (zh) * | 2012-03-05 | 2012-07-11 | 北京中创信测科技股份有限公司 | 一种数据分离方法、***及交换机 |
CN103391290A (zh) * | 2013-07-16 | 2013-11-13 | 沈阳时尚实业有限公司 | 一种规约解析的电力用户用电信息采集*** |
-
2016
- 2016-05-13 CN CN201610320117.7A patent/CN106021199B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0757336B1 (en) * | 1995-08-04 | 2000-11-22 | Belle Gate Investment B.V. | Data exchange systems comprising portable data processing units |
CN1455901A (zh) * | 2000-10-06 | 2003-11-12 | 佳能株式会社 | Xml编码方案 |
CN101848148A (zh) * | 2010-04-21 | 2010-09-29 | 中国工商银行股份有限公司 | 应用于金融报文语言的数据传输处理***、装置及方法 |
CN101854391A (zh) * | 2010-05-25 | 2010-10-06 | 南京邮电大学 | 一种基于对等网络的阿瑞斯协议分析***的实现方法 |
CN102075432A (zh) * | 2011-01-25 | 2011-05-25 | 上海聚欣网络科技有限公司 | 一种用于发送及接收报文的方法、装置、设备及*** |
CN102571611A (zh) * | 2012-03-05 | 2012-07-11 | 北京中创信测科技股份有限公司 | 一种数据分离方法、***及交换机 |
CN103391290A (zh) * | 2013-07-16 | 2013-11-13 | 沈阳时尚实业有限公司 | 一种规约解析的电力用户用电信息采集*** |
Also Published As
Publication number | Publication date |
---|---|
CN106021199B (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kriege et al. | On valid optimal assignment kernels and applications to graph classification | |
CN108710613A (zh) | 文本相似度的获取方法、终端设备及介质 | |
An et al. | Characterizing and mining the citation graph of the computer science literature | |
Girotra et al. | Comparative survey on association rule mining algorithms | |
CN104809751B (zh) | 生成事件组演化图的方法和装置 | |
CN106067132A (zh) | 商品属性的设置方法及装置 | |
CN109753517A (zh) | 一种信息查询的方法、装置、计算机存储介质及终端 | |
Pashanasangi et al. | Efficiently counting vertex orbits of all 5-vertex subgraphs, by evoke | |
CN107748739A (zh) | 一种短信文本模版的提取方法及相关装置 | |
CN106708813A (zh) | 一种标题处理方法及设备 | |
Karatzoglou et al. | Kernel-based machine learning for fast text mining in R | |
Faro et al. | An efficient skip-search approach to swap matching | |
CN107085615A (zh) | 文本消重***、方法、服务器及计算机存储介质 | |
Schulz et al. | On the necessity of graph kernel baselines | |
CN111310224B (zh) | 日志脱敏方法、装置、计算机设备及计算机可读存储介质 | |
CN106021199A (zh) | 一种面向业务数据的字符串报文处理方法和装置 | |
CN107862016A (zh) | 一种专题页面的配置方法 | |
Zhao et al. | Community detection using label propagation in entropic order | |
CN110209656A (zh) | 数据处理方法及装置 | |
CN107622048B (zh) | 一种文本模式识别方法及*** | |
Alpuente et al. | A tool for computing the visual similarity of web pages | |
García-Soriano et al. | Triangle counting in streamed graphs via small vertex covers | |
CN106776607A (zh) | 搜索引擎操作行为处理方法和装置 | |
Vidanagamachchi et al. | Hardware software co-design of the Aho-Corasick algorithm: Scalable for protein identification? | |
CN107665443A (zh) | 获取目标用户的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |