CN103294697B - 一种数据自适应解析方法及装置 - Google Patents
一种数据自适应解析方法及装置 Download PDFInfo
- Publication number
- CN103294697B CN103294697B CN201210046241.0A CN201210046241A CN103294697B CN 103294697 B CN103294697 B CN 103294697B CN 201210046241 A CN201210046241 A CN 201210046241A CN 103294697 B CN103294697 B CN 103294697B
- Authority
- CN
- China
- Prior art keywords
- file
- item
- data
- internal storage
- storage structure
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明提供了一种数据自适应解析方法及装置,相应的方法包括通过特定的文本文件描述各项数据在内存中的排列位置,获得内存结构动态描述文件;根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项,并将查找到的项对应的数据填充到内存块的对应字节处。本发明通过建立内存结构动态描述文件,在读取输入文件时,根据输入文件的结构在内存结构动态描述文件中对应的项,将查找到的项对应的数据填充到内存块的对应字节处,从而实现了数据格式做改动时只需要修改配置文件,而不必修改代码,系统即可根据配置文件来动态识别数据格式,提高了系统的扩展性和灵活性。
Description
技术领域
本发明提供了一种数据自适应解析方法及装置,属于数据处理技术领域。
背景技术
在数据处理业务中经常遇到如下一种业务状况:上游的业务数据收集模块按照一定格式收集数据,传给下游的数据处理模块。此时下游的数据处理模块必须要能识别上游传递过来的数据格式,才能做处理、转换、计算等操作。那么下游模块如何正确识别传递来的数据格式,就成为一个关键问题。现有的技术方案主要是:在上游业务模块和下游的数据处理模块共用一个公有的数据结构,在代码层面硬编码数据格式。
但该现有技术的最大缺点就是扩展性和灵活性较差。比如一旦要多添加一个数据项,将是一件非常困难的事情,需要重新修改代码,耗时耗力。
发明内容
本发明为解决现有的数据处理技术中存在的识别上游模块传递的数据格式的扩展性和灵活性较差的问题。为此,本发明提供了一种数据自适应解析方法及装置。
一种数据自适应解析方法,包括:
通过特定的文本文件描述各项数据在内存中的排列位置,获得内存结构动态描述文件;
根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项,并将查找到的项对应的数据填充到内存块的对应字节处。
一种数据自适应解析方法装置,包括:
动态描述文件建立单元,用于通过特定的文本文件描述各项数据在内存中的排列位置,获得内存结构动态描述文件;
动态读取转换单元,用于根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项,并将查找到的项对应的数据填充到内存块的对应字节处。
由上述本发明提供的技术方案可以看出,通过建立内存结构动态描述文件,在读取输入文件时,根据输入文件的结构在内存结构动态描述文件中对应的项,将查找到的项对应的数据填充到内存块的对应字节处,从而实现了数据格式做改动时只需要修改配置文件,而不必修改代码,系统即可根据配置文件来动态识别数据格式,提高了系统的扩展性和灵活性。
附图说明
图1是本发明具体实施方式提供的根据配置文件来动态识别数据格式的总图结构示意图;
图2是本发明具体实施方式提供的数据自适应解析方法的流程示意图;
图3是本发明具体实施方式提供的数据自适应解析装置的结构示意图。
具体实施方式
本发明具体实施方式提供了一种数据自适应解析方法,包括通过特定的文本文件描述各项数据在内存中的排列位置,获得内存结构动态描述文件;根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项,并将查找到的项对应的数据填充到内存块的对应字节处。本具体实施方式本方案分别用相应的配置文件来描述输入文件结构、内存结构和输出文件结构,从而实现了在数据格式做动改动的时候只需要修改配置文件,而不必修改代码,系统可以根据配置文件来动态识别数据格式做处理,总体结构如图1所示,包括了内存块的动态描述和动态读取转换。下面结合说明书附图对本具体实施方式作具体说明,如图2所示,相应的数据自适应解析方法包括:
步骤21,通过特定的文本文件描述各项数据在内存中的排列位置,获得内存结构动态描述文件。
具体的,在动态解析数据的过程中,首先需要将内存结构进行动态描述,本具体实施方式采用了xml格式的文件进行描述,分别用input.xml、mem.xml和output.xml三个配置文件来描述输入文件结构、内存结构和输出文件结构。另外,如json等格式的文本文件也适用于本具体实施方式。具体的描述格式如下:
Mem.xml描述了各项在内存中的排列位置。主要包含以下信息:
每一项可以包括:项名name,类型type,内存项的大小size,具体如下表所示:
根据mem.xml描述,计算出每一项在内存中的位置。计算方式如下:
步骤22,根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项,并将查找到的项对应的数据填充到内存块的对应字节处。
具体的,动态读取转换的过程包括由input.xml描述的输入文件转换为由mem.xml描述的内存结构,根据input.xml输入配置文件。若输入为文本文件,则配置文件可以设置如下:
第一部分
第二部分
上述配置文件中的第一部分为输入配置文件input.xml,第二部分为内存结构文件 mem.xml。该配置文件说明了输入文件每行共有3项,每项之间用’\t’分隔,并且第三项cookie项会扩展出5项:age、scene、country、province和city。其中输入文件中的第二项“ver”在mem.xml中没有对应的项,将被丢弃。下面再详细描述转换步骤:
步骤31,每次读入一行,根据配置文件的分隔符分割得到各项;
步骤32,对于每一项,根据input.xml文件中的项名在mem.xml文件中查找对应的项,若找到则转入步骤33,若未找到,则转入步骤34;
步骤33,假设该项对应于mem.xml的第i项,则将该项填充到内存块的offset(i)字节处;
步骤34,如果找不到该项,且ext=0说明该输入项不用处理,扔弃,否则转入步骤35;
步骤35,调用回调method函数,该函数的输出输出为字符串str。则根据对应的扩展项的分隔符来分割str.转入步骤36;
步骤36,对于 扩展的每一项,根据项名在mem.xml文件中查找对应项,若找到则转入步骤33,若找不到则扔弃。
采用本具体实施方式提供的技术方案,通过建立内存结构动态描述文件,在读取输入文件时,根据输入文件的结构在内存结构动态描述文件中对应的项,将查找到的项对应的数据填充到内存块的对应字节处,从而实现了数据格式做改动时只需要修改配置文件,而不必修改代码,系统即可根据配置文件来动态识别数据格式,提高了系统的扩展性和灵活性。
本发明的具体实施方式还提供了一种数据自适应解析方法装置,如图3所示,具体可以包括:
动态描述文件建立单元31,用于通过特定的文本文件描述各项数据在内存中的排列位置,获得内存结构动态描述文件;
动态读取转换单元32,用于根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项,并将查找到的项对应的数据填充到内存块的对应字节处。
可选的,在动态描述文件建立单元31中,特定的文本文件包括xml格式文件或json格式文件。
可选的,在动态描述文件建立单元31中,描述的每一项数据包括项名、类型和内存项的大小。
可选的,在动态读取转换单元32中可以包括数据分割子单元和动态转换子单元,数据分割子单元,用于若没有在所述内存结构动态描述文件中的位置查找到对应的项,则调用回调method函数,根据对应的扩展项的分隔符来分割该项数据;动态转换子单元,用于对于 所述分割该项数据的每一项,根据项名在所述内存结构动态描述文件中查找对应的项。
上述数据自适应解析方法装置中包含的各单元的处理功能的实施方式在之前的方法具体实施方式中已经描述,在此不再重复描述。
采用本实施例提供的技术方案,通过建立内存结构动态描述文件,在读取输入文件时,根据输入文件的结构在内存结构动态描述文件中对应的项,将查找到的项对应的数据填充到内存块的对应字节处,从而实现了数据格式做改动时只需要修改配置文件,而不必修改代码,系统即可根据配置文件来动态识别数据格式,提高了系统的扩展性和灵活性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种数据自适应解析方法,其特征在于,包括:
通过特定的文本文件描述各项数据在内存中的排列位置,获得内存结构动态描述文件;
根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项,并将查找到的项对应的数据填充到内存块的对应字节处;
若没有在所述内存结构动态描述文件中的位置查找到对应的项,则调用回调method函数,根据查找到的项对应的扩展项的分隔符来分割该项数据;
对于 所述分割该项数据的每一项,根据项名在所述内存结构动态描述文件中查找对应的项。
2.根据权利要求1所述的数据自适应解析方法,其特征在于,所述特定的文本文件包括xml格式文件或json格式文件。
3.根据权利要求1所述的数据自适应解析方法,其特征在于,所述描述的每一项数据包括项名、类型和内存项的大小。
4.一种数据自适应解析方法装置,其特征在于,包括:
动态描述文件建立单元,用于通过特定的文本文件描述各项数据在内存中的排列位置,获得内存结构动态描述文件;
动态读取转换单元,用于根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项,并将查找到的项对应的数据填充到内存块的对应字节处;
在所述动态读取转换单元中包括:
数据分割子单元,用于若没有在所述内存结构动态描述文件中的位置查找到对应的项,则调用回调method函数,根据查找到的项对应的扩展项的分隔符来分割该项数据;
动态转换子单元,用于对于 所述分割该项数据的每一项,根据项名在所述内存结构动态描述文件中查找对应的项。
5.根据权利要求4所述的数据自适应解析方法装置,其特征在于,在所述动态描述文件建立单元中,所述特定的文本文件包括xml格式文件或json格式文件。
6.根据权利要求4所述的数据自适应解析方法装置,其特征在于,在所述动态描述文件建立单元中,所述描述的每一项数据包括项名、类型和内存项的大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210046241.0A CN103294697B (zh) | 2012-02-24 | 2012-02-24 | 一种数据自适应解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210046241.0A CN103294697B (zh) | 2012-02-24 | 2012-02-24 | 一种数据自适应解析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103294697A CN103294697A (zh) | 2013-09-11 |
CN103294697B true CN103294697B (zh) | 2018-06-19 |
Family
ID=49095589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210046241.0A Active CN103294697B (zh) | 2012-02-24 | 2012-02-24 | 一种数据自适应解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103294697B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109977385B (zh) * | 2019-03-18 | 2023-04-25 | 合肥智慧联接科技有限公司 | 一种数据智能填充方法、装置、存储介质及终端 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902335A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种数据过滤与合并的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6704736B1 (en) * | 2000-06-28 | 2004-03-09 | Microsoft Corporation | Method and apparatus for information transformation and exchange in a relational database environment |
US7865528B2 (en) * | 2001-01-09 | 2011-01-04 | Nextair Corporation | Software, devices and methods facilitating execution of server-side applications at mobile devices |
CN1831828A (zh) * | 2006-04-10 | 2006-09-13 | 无锡永中科技有限公司 | 保存xml文档的方法 |
CN102170410B (zh) * | 2007-11-12 | 2014-01-22 | 华为技术有限公司 | 数据交换方法、系统及设备 |
-
2012
- 2012-02-24 CN CN201210046241.0A patent/CN103294697B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902335A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种数据过滤与合并的方法 |
Non-Patent Citations (2)
Title |
---|
一种基于自解析报文协议的系统分层方法;罗毅等;《计算机工程》;20120220;第38卷(第4期);第79-81页 * |
基于并行子树构建的XML解析方法;陈荣鑫等;《计算机科学》;20110331;第38卷(第3期);第191-194页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103294697A (zh) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109886399B (zh) | 一种张量处理装置及方法 | |
CN103294652B (zh) | 一种数据转换方法及系统 | |
CN101950312B (zh) | 一种互联网网页内容解析方法 | |
WO2006014847A3 (en) | Ontology based medical system for data capture and knowledge representation | |
US20130174024A1 (en) | Method and device for converting document format | |
CN108235069A (zh) | 网络电视日志的处理方法及装置 | |
CN104615765A (zh) | 一种移动用户上网记录的数据处理方法及装置 | |
US20200204688A1 (en) | Picture book sharing method and apparatus and system using the same | |
US9679566B2 (en) | Apparatus for synchronously processing text data and voice data | |
CN106227575A (zh) | 一种生成与解析文本文件的方法 | |
US9524354B2 (en) | Device, method, and program for processing data with tree structure | |
CN103294697B (zh) | 一种数据自适应解析方法及装置 | |
CN105790967A (zh) | 一种网络日志处理方法和装置 | |
CN102270223B (zh) | 消息解码库的生成方法、装置及消息解码方法、装置 | |
CN105243277A (zh) | 一种计算机辅助医疗数据处理系统及方法 | |
CN104753891A (zh) | 一种xml报文解析方法及装置 | |
CN107463340A (zh) | 计算机的数据存储系统 | |
CN105721402A (zh) | 一种解析sita报文的方法和装置 | |
CN105574164B (zh) | Excel文档的数据解析方法及装置 | |
CN116489251A (zh) | 通用码流解析方法、装置、计算机可读介质及终端设备 | |
CN105512270B (zh) | 一种确定相关对象的方法和装置 | |
CN107506339B (zh) | 一种基于字符偏移的scd节点校验出错定位方法及装置 | |
CN109740130A (zh) | 用于生成文件的方法和装置 | |
CN108427664A (zh) | 一种文档解析方法和装置 | |
CN108549739A (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 |