CN114661955A - 一种配置化的xml报文解析方法、系统、装置和存储器 - Google Patents
一种配置化的xml报文解析方法、系统、装置和存储器 Download PDFInfo
- Publication number
- CN114661955A CN114661955A CN202210173700.5A CN202210173700A CN114661955A CN 114661955 A CN114661955 A CN 114661955A CN 202210173700 A CN202210173700 A CN 202210173700A CN 114661955 A CN114661955 A CN 114661955A
- Authority
- CN
- China
- Prior art keywords
- xml message
- node
- configuration information
- nodes
- acquiring
- 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.)
- Pending
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/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
-
- 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/14—Tree-structured documents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种配置化的XML报文解析方法、系统、装置和存储器,属于XML解析技术领域,所述方法包括:获取XML报文相匹配的配置信息,所述配置信息包括层级结构和每层节点的属性;根据所述配置信息,获取XML报文的对象树;从所述对象树中获取业务处理函数的参数值。根据XML报文选择匹配的配置信息,并根据所述配置信息解析XML报文中的对象树的节点信息和层级关系,从所述节点信息中获取参数值,利于业务处理函数的正常运行;降低人工编码成本,提高生产力;利于对配置信息进行统一管理,和后期配置信息的维护。
Description
技术领域
本发明涉及XML解析技术领域,具体涉及一种配置化的XML报文解析方法、系统、装置和存储器。
背景技术
XML指一种可扩展标记语言,被设计用来传输和存储数据。XML用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
随着移动集团总部与省公司交互日益增加和复杂,无论是实时的HTTP通信还是准实时的FTP通信,其通讯的主体业务报文都是以XML的形式进行交互,对于业务规范的新增和修改都需要在业务前置对XML报文作人为编码解析功能,而且由于XML规范的差异,解析功能并不能通用。而对于过于复杂层次多的XML解析工作占用大量时间和人力。
发明内容
针对现有技术中存在的上述技术问题,本发明提供一种配置化的XML报文解析方法、系统、装置和存储器,根据预设的配置信息,解析XML报文的节点及其层级关系,方便业务处理函数的正常读取解析内容。
本发明公开了一种配置化的XML报文解析方法,所述方法包括:获取XML报文相匹配的配置信息,所述配置信息包括层级结构和每层节点的属性;根据所述配置信息,获取XML报文的对象树;从所述对象树中获取业务处理函数的参数值。
优选的,获取XML报文的对象树的方法包括:根据所述配置信息,获取XML报文的层级结构;根据文档对象模型和所述XML报文的层级结构,获得XML报文的对象树,所述对象树包括节点集合和节点的层级关系。
优选的,业务处理函数的参数传递的方法包括:使用List对象,保存对象树中节点的层级关系,所述层级关系包括层级和所述层级下的节点名称;使用Map对象保存对象树中的节点信息,所述节点信息包括节点名称、属性名称、属性描述、属性类型、属性备注和属性值;根据节点名称匹配Map对象,并从Map对象中获取所述业务处理函数参数相应的属性名称及其属性值。
优选的,对象树的节点信息转存的方法包括:
步骤401:根据配置信息,获得当前层级和当前层级的节点集合;
步骤402:遍历所述节点集合的节点,判断所述节点是否为父节点;
若否,执行步骤403:将所述节点转存到Map对象中,将所述节点的名称和层级关系转存到List对象中;
若是,执行步骤404:获取所述父节点的下一层级及其节点集合,执行步骤402。
优选的,配置信息中每层节点的属性包括节点名称和每层的节点数量。
本发明还提供一种用于实现上述XML报文解析方法的系统,包括配置模块、解析模块和执行模块;
所述配置模块用于获取XML报文相匹配的配置信息;
所述解析模块用于根据配置模块的配置信息,解析XML报文的对象树;
所述执行模块用于从所述对象树中获取业务处理函数的参数值。
优选的,所述系统还包括报文接收模块,所述报文接收模块用于接收报文,并调用配置模块从相应的配置文件中获取配置信息。
优选的,所述系统还包括转存模块,所述转存模块用于根据对象树,使用List对象保存对象树中节点的层级关系,使用Map对象保存对象树中的节点信息,所述节点信息包括节点名称、属性名称、属性描述、属性类型、属性备注和属性值;
所述执行模块用于根据节点名称,从所述Map对象中获取业务处理函数的参数值。
本发明还提供一种装置,包括存储器和与所述存储器耦合的处理器,所述存储器用于存储程序,所述程序包括用于执行上述XML报文解析方法的指令;所述处理器用于执行所述指令。
本发明还提供一种存储器,用于存储程序,所述程序包括用于执行上述XML报文解析方法的指令;所述处理器用于执行所述指令。
与现有技术相比,本发明的有益效果为:根据XML报文选择匹配的配置信息,并根据所述配置信息解析XML报文中的对象树的节点信息和层级关系,从所述节点信息中获取参数值,利于业务处理函数的正常运行;降低人工编码成本,提高生产力;利于对配置信息进行统一管理,和后期配置信息的维护。
附图说明
图1是本发明的配置化的XML报文解析方法流程图;
图2是实施例1的方法流程图;
图3是本发明的系统逻辑框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
一种配置化的XML报文解析方法,如图1所示,所述方法包括:
步骤101:获取XML报文相匹配的配置信息,所述配置信息包括XML报文的层级结构和每层节点的属性,所述属性包括节点名称和每层的节点数量。具体的,可以将配置信息预设到配置文件中。
步骤102:根据所述配置信息,获取XML报文的对象树。可以基于文档对象模型(DOM,Document Object Model),获得对象树,所述对象树反应了节点和节点的层级关系,DOM为现有技术,本发明中不再赘述。
步骤103:从所述对象树中获取业务处理函数的参数值。可以根据对象树的节点名称获取参数及其参数值。
根据XML报文选择匹配的配置信息,并根据所述配置信息解析XML报文中的对象树的节点信息和层级关系,从所述节点信息中获取参数值,利于业务处理函数的正常运行;降低人工编码成本,提高生产力;利于对配置信息进行统一管理,和后期配置信息的维护。
步骤102中,获取XML报文的对象树的方法包括:
步骤201:根据所述配置信息,获取XML报文的层级结构。
步骤202:根据文档对象模型DOM和所述XML报文的层级结构,获得XML报文的对象树,所述对象树包括节点集合和节点的层级关系。
其中,可以通过自定义存储对象对业务处理函数的参数进行传递的方法包括:
步骤301:使用List对象,保存对象树中节点的层级关系,所述层级关系包括层级、所述层级下的节点名称、以及所述层级与上一层级和下一层级的关系。
步骤302:使用Map对象保存对象树中的节点信息,所述节点信息包括节点名称、属性名称或字段名称、属性描述、属性类型、属性备注和属性值等。List对象和Map对象的组合为自定义存储对象。
步骤303:所述业务处理函数根据List对象中的节点名称匹配的Map对象,并从Map对象匹配参数相应的属性名称及其属性值。自定义存储对象包括List对象和Map对象。
在一个具体实施例中,如图2所示,对象树的节点信息转存的方法包括:
步骤401:根据配置信息,获得当前层级和当前层级的节点集合。
步骤402:遍历所述节点集合的节点,判断所述节点是否为父节点。父节点具有下一层级的子节点。
若否,执行步骤403:将所述节点的信息转存到Map对象中,将所述节点的名称和层级关系转存到List对象中。即转存所述节点的信息。
若是,执行步骤404:转存所述节点的信息,并获取所述父节点的下一层级及其节点集合,执行步骤402,直到最后一个层级。
通过上述步骤,可以将对象树的节点信息和层级关系转存到自定义的存储对象中。
实施例1
配置信息可以保存在配置文件中,配置信息包括层级关系和每层节点的属性,部分配置信息如下表所示:
相应的节点信息描述如下所示:
<MSGBODY>
<FIELD NAME=“IDType”TYPE=“I String”MODE=“1”DESC=“I码号类型”>
<FIELD NAME=“province”TYPE=“String”MODE=“1”DESC=“码号归属地省份”>
<FIELD NAME=“Commandid”TYPE=“String”MODE=“1”DESC=“工单ID”>
<FIELD NAME=“Requestid”TYPE=“String”MODE=“1”DESC=“请求ID”>
</MSGBODY>
其中,FIELD表示为节点名称,配置信息中的层级与节点信息中的描述和规范是一致。业务处理函数,根据节点名称,将节点信息作为入参,从节点信息中得到相应的参数及其参数值,参数如IDType、province、Commandid和Requestid。其中节点信息可以可在到MAP对象中。
其中,可以基于IOC思想,在接收到XML报文时,各个业务逻辑调用前,在切面插入XML报文解析方法或解析模块,解析模块按各个XML报文的类型,自动匹配相应的配置文件,解读配置文件中层级和节点的配置信息。
实施例2
本实施例提供一种用于实现上述XML报文解析方法的系统,如图3所示,包括配置模块2、解析模块3和执行模块5;
配置模块2用于获取XML报文相匹配的配置信息;
解析模块3用于根据配置模块的配置信息,解析XML报文的对象树;
执行模块5用于从所述对象树中获取业务处理函数的参数值。
所述系统还可以包括报文接收模块1和转存模块4。
报文接收模块1用于接收报文,并调用配置模块从相应的配置文件中获取配置信息。
转存模块4用于根据对象树,使用List对象保存对象树中节点的层级关系,使用Map对象保存对象树中的节点信息,所述节点信息包括节点名称、属性名称、属性描述、属性类型、属性备注和属性值;
执行模块5用于根据节点名称,从所述Map对象中获取业务处理函数的参数值。
其中,所述转存模块还用于将对象树的节点信息转存到自定义存储对象中:
步骤401:根据配置信息,获得当前层级和当前层级的节点集合;
步骤402:遍历所述节点集合的节点,判断所述节点是否为父节点;
若否,执行步骤403:将所述节点转存到Map对象中,将所述节点的名称和层级关系转存到List对象中;
若是,执行步骤404:获取所述父节点的下一层级及其节点集合,执行步骤402。
本发明还提供一种装置,包括存储器和与所述存储器耦合的处理器,所述存储器用于存储程序,所述程序包括用于上述XML报文解析方法的指令;
所述处理器用于执行所述指令。
本发明还提供一种存储器,用于存储程序,所述程序包括用于执行上述XML报文解析方法的指令。
在一个具体实施例中,在某小移营业2021项目中进行测试,在集团批量积分文件接口需求开发中,7个文件接口的开发工作使用了XML报文解析方法和系统进行XML报文的解析工作,开发周期减少一半。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种配置化的XML报文解析方法,其特征在于,所述方法包括:
获取XML报文相匹配的配置信息,所述配置信息包括层级结构和每层节点的属性;
根据所述配置信息,获取XML报文的对象树;
从所述对象树中获取业务处理函数的参数值。
2.根据权利要求1所述的XML报文解析方法,其特征在于,获取XML报文的对象树的方法包括:
根据所述配置信息,获取XML报文的层级结构;
根据文档对象模型和所述XML报文的层级结构,获得XML报文的对象树,所述对象树包括节点集合和节点的层级关系。
3.根据权利要求2所述的XML报文解析方法,其特征在于,业务处理函数的参数传递的方法包括:
使用List对象,保存对象树中节点的层级关系,所述层级关系包括层级和所述层级下的节点名称;
使用Map对象保存对象树中的节点信息,所述节点信息包括节点名称、属性名称、属性描述、属性类型、属性备注和属性值;
根据节点名称匹配Map对象,并从Map对象中获取所述业务处理函数参数相应的属性名称及其属性值。
4.根据权利要求3所述的XML报文解析方法,其特征在于,对象树的节点信息转存的方法包括:
步骤401:根据配置信息,获得当前层级和当前层级的节点集合;
步骤402:遍历所述节点集合的节点,判断所述节点是否为父节点;
若否,执行步骤403:将所述节点转存到Map对象中,将所述节点的名称和层级关系转存到List对象中;
若是,执行步骤404:获取所述父节点的下一层级及其节点集合,执行步骤402。
5.根据权利要求1所述的XML报文解析方法,其特征在于,配置信息中每层节点的属性包括节点名称和每层的节点数量。
6.一种用于实现如权利要求1-5任一项所述XML报文解析方法的系统,其特征在于,包括配置模块、解析模块和执行模块;
所述配置模块用于获取XML报文相匹配的配置信息;
所述解析模块用于根据配置模块的配置信息,解析XML报文的对象树;
所述执行模块用于从所述对象树中获取业务处理函数的参数值。
7.根据权利要求6所述的系统,其特征在于,还包括报文接收模块,所述报文接收模块用于接收报文,并调用配置模块从相应的配置文件中获取配置信息。
8.根据权利要求7所述的系统,其特征在于,还包括转存模块,所述转存模块用于根据对象树,使用List对象保存对象树中节点的层级关系,使用Map对象保存对象树中的节点信息,所述节点信息包括节点名称、属性名称、属性描述、属性类型、属性备注和属性值;
所述执行模块用于根据节点名称,从所述Map对象中获取业务处理函数的参数值。
9.一种装置,其特征在于,包括存储器和与所述存储器耦合的处理器,所述存储器用于存储程序,所述程序包括用于执行如权利要求1-5任一项所述XML报文解析方法的指令;
所述处理器用于执行所述指令。
10.一种存储器,其特征在于,用于存储程序,所述程序包括用于执行如权利要求1-5任一项所述XML报文解析方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210173700.5A CN114661955A (zh) | 2022-02-24 | 2022-02-24 | 一种配置化的xml报文解析方法、系统、装置和存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210173700.5A CN114661955A (zh) | 2022-02-24 | 2022-02-24 | 一种配置化的xml报文解析方法、系统、装置和存储器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114661955A true CN114661955A (zh) | 2022-06-24 |
Family
ID=82027816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210173700.5A Pending CN114661955A (zh) | 2022-02-24 | 2022-02-24 | 一种配置化的xml报文解析方法、系统、装置和存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661955A (zh) |
-
2022
- 2022-02-24 CN CN202210173700.5A patent/CN114661955A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6289501B1 (en) | Method for generating simple document type definitions | |
US6408311B1 (en) | Method for identifying UML objects in a repository with objects in XML content | |
US9607064B2 (en) | Content transfer | |
US8196100B2 (en) | Content management system for computer software with dynamic traceability between code and design documents | |
CN112650533B (zh) | 接口文档的生成方法、装置和终端设备 | |
JP2000504868A (ja) | 管理インターワーキング・ユニットおよびかかるユニットの形成方法 | |
US20020073193A1 (en) | Telecommunications network resource handling arrangement and method | |
CN111581920A (zh) | 文档转换方法、装置、设备及计算机存储介质 | |
CN111556074A (zh) | 基于opc ua的通信协议配置方法及装置 | |
AU2002318987A1 (en) | Content transfer | |
CN101170436B (zh) | 一种网管中模板管理的实现方法 | |
CN113626223A (zh) | 一种接口调用方法和装置 | |
US20130191420A1 (en) | Autonomic generation of document structure in a content management system | |
CN103646015B (zh) | 发送、接收以及传输xml报文的方法和系统 | |
CN111078213A (zh) | 一种代码生成方法及代码生成装置 | |
CN113111109A (zh) | 数据源的接口入库解析接入方法 | |
CN115202663A (zh) | 一种数据处理方法、装置和存储介质 | |
JP2014504469A (ja) | ネットワーク要素の構成管理 | |
CN114661955A (zh) | 一种配置化的xml报文解析方法、系统、装置和存储器 | |
CN114661851B (zh) | 一种在线轻量级快速响应的自然资源空间信息处理方法 | |
CN110175917A (zh) | 参数图形化处理的装置及方法 | |
CN111222015B (zh) | 一种异构xml映射生成文档方法 | |
CN112732643A (zh) | 流程图图形文件数据与s1000d标准xml格式数据的相互转换方法 | |
CN113111108A (zh) | 文件数据源入库解析接入方法 | |
CN114499759B (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 |