CN103294697A - 一种数据自适应解析方法及装置 - Google Patents

一种数据自适应解析方法及装置 Download PDF

Info

Publication number
CN103294697A
CN103294697A CN2012100462410A CN201210046241A CN103294697A CN 103294697 A CN103294697 A CN 103294697A CN 2012100462410 A CN2012100462410 A CN 2012100462410A CN 201210046241 A CN201210046241 A CN 201210046241A CN 103294697 A CN103294697 A CN 103294697A
Authority
CN
China
Prior art keywords
item
data
description document
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.)
Granted
Application number
CN2012100462410A
Other languages
English (en)
Other versions
CN103294697B (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.)
Tencent Technology Beijing Co Ltd
Original Assignee
Tencent Technology Beijing Co Ltd
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 Tencent Technology Beijing Co Ltd filed Critical Tencent Technology Beijing Co Ltd
Priority to CN201210046241.0A priority Critical patent/CN103294697B/zh
Publication of CN103294697A publication Critical patent/CN103294697A/zh
Application granted granted Critical
Publication of CN103294697B publication Critical patent/CN103294697B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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描述了各项在内存中的排列位置。主要包含以下信息:
Figure BDA0000138260530000021
Figure BDA0000138260530000031
每一项可以包括:项名name,类型type,内存项的大小size,具体如下表所示:
Figure BDA0000138260530000032
根据mem.xml描述,计算出每一项在内存中的位置。计算方式如下:
offset ( i ) = Σ i - 1 size
步骤22,根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项,并将查找到的项对应的数据填充到内存块的对应字节处。
具体的,动态读取转换的过程包括由input.xml描述的输入文件转换为由mem.xml描述的内存结构,根据input.xml输入配置文件。若输入为文本文件,则配置文件可以设置如下:
第一部分
Figure BDA0000138260530000034
第二部分
Figure BDA0000138260530000035
Figure BDA0000138260530000041
上述配置文件中的第一部分为输入配置文件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 (8)

1.一种数据自适应解析方法,其特征在于,包括:
通过特定的文本文件描述各项数据在内存中的排列位置,获得内存结构动态描述文件;
根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项,并将查找到的项对应的数据填充到内存块的对应字节处。
2.根据权利要求1所述的数据自适应解析方法,其特征在于,所述特定的文本文件包括xml格式文件或json格式文件。
3.根据权利要求1所述的数据自适应解析方法,其特征在于,所述描述的每一项数据包括项名、类型和内存项的大小。
4.根据权利要求1至3任意一项所述的数据自适应解析方法,其特征在于,所述根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项包括:
若没有在所述内存结构动态描述文件中的位置查找到对应的项,则调用回调method函数,根据对应的扩展项的分隔符来分割该项数据;
对应所述分割该项数据的每一项,根据项名在所述内存结构动态描述文件中查找对应的项。
5.一种数据自适应解析方法装置,其特征在于,包括:
动态描述文件建立单元,用于通过特定的文本文件描述各项数据在内存中的排列位置,获得内存结构动态描述文件;
动态读取转换单元,用于根据输入文件结构中的项名在所述内存结构动态描述文件中的位置查找对应的项,并将查找到的项对应的数据填充到内存块的对应字节处。
6.根据权利要求5所述的数据自适应解析方法装置,其特征在于,在所述动态描述文件建立单元中,所述特定的文本文件包括xml格式文件或json格式文件。
7.根据权利要求5所述的数据自适应解析方法装置,其特征在于,在所述动态描述文件建立单元中,所述描述的每一项数据包括项名、类型和内存项的大小。
8.根据权利要求5至7任意一项所述的数据自适应解析方法装置,其特征在于,在所述动态读取转换单元中包括:
数据分割子单元,用于若没有在所述内存结构动态描述文件中的位置查找到对应的项,则调用回调method函数,根据对应的扩展项的分隔符来分割该项数据;
动态转换子单元,用于对应所述分割该项数据的每一项,根据项名在所述内存结构动态描述文件中查找对应的项。
CN201210046241.0A 2012-02-24 2012-02-24 一种数据自适应解析方法及装置 Active CN103294697B (zh)

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 true CN103294697A (zh) 2013-09-11
CN103294697B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109977385A (zh) * 2019-03-18 2019-07-05 合肥智慧联接科技有限公司 一种数据智能填充方法、装置、存储介质及终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831828A (zh) * 2006-04-10 2006-09-13 无锡永中科技有限公司 保存xml文档的方法
CN101478730A (zh) * 2007-11-12 2009-07-08 华为技术有限公司 数据交换方法、系统及设备
US20100198868A1 (en) * 2000-06-28 2010-08-05 Microsoft Corporation Method and apparatus for information transformation and exchange in a relational database environment
CN101902335A (zh) * 2009-05-27 2010-12-01 北京启明星辰信息技术股份有限公司 一种数据过滤与合并的方法
US20110087710A1 (en) * 2001-01-09 2011-04-14 Tim Neil Software, devices and methods facilitating execution of server-side applications at mobile devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100198868A1 (en) * 2000-06-28 2010-08-05 Microsoft Corporation Method and apparatus for information transformation and exchange in a relational database environment
US20110087710A1 (en) * 2001-01-09 2011-04-14 Tim Neil Software, devices and methods facilitating execution of server-side applications at mobile devices
CN1831828A (zh) * 2006-04-10 2006-09-13 无锡永中科技有限公司 保存xml文档的方法
CN101478730A (zh) * 2007-11-12 2009-07-08 华为技术有限公司 数据交换方法、系统及设备
CN101902335A (zh) * 2009-05-27 2010-12-01 北京启明星辰信息技术股份有限公司 一种数据过滤与合并的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
罗毅等: "一种基于自解析报文协议的系统分层方法", 《计算机工程》 *
陈荣鑫等: "基于并行子树构建的XML解析方法", 《计算机科学》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109977385A (zh) * 2019-03-18 2019-07-05 合肥智慧联接科技有限公司 一种数据智能填充方法、装置、存储介质及终端
CN109977385B (zh) * 2019-03-18 2023-04-25 合肥智慧联接科技有限公司 一种数据智能填充方法、装置、存储介质及终端

Also Published As

Publication number Publication date
CN103294697B (zh) 2018-06-19

Similar Documents

Publication Publication Date Title
CN103631969B (zh) 一种报表数据的生成方法及装置
CN101272276B (zh) 一种日志管理的实现方法
CN103440264B (zh) 电力现场作业表单的实现方法及系统
CN104361081A (zh) 一种基于web文档的自动摘要方法
CN103294652A (zh) 一种数据转换方法及系统
CN102567297A (zh) 数据转换装置和数据转换方法
CN103389969A (zh) 一种用于移动终端预览pdf文件的方法、装置和系统
CN102508908A (zh) 一种下级财政业务数据的采集方法和系统
EP2782025A2 (en) Communication apparatus, method, system and program for encoding/decoding structured documents
CN106469152A (zh) 一种基于etl的文件处理方法及系统
CN103559171A (zh) 网络应用中的数据格式转换方法和装置
CN103390045A (zh) 一种用于监控系统的时间序列存储方法及装置
CN103793437A (zh) 晶圆测试数据处理方法及其系统
CN103744841A (zh) 一种信息碎片的翻译方法及系统
CN109471957B (zh) 一种基于统一标签的元数据转换方法及装置
CN104267941A (zh) 动态生成响应式网页的方法及装置
CN107506407B (zh) 一种文件分类、调用的方法及装置
CN103729197A (zh) 一种基于lda模型的多粒度层次软件聚类方法
CN103294697A (zh) 一种数据自适应解析方法及装置
CN110889261A (zh) 一种电子公文业务处理自动化的方法
CN104753891A (zh) 一种xml报文解析方法及装置
US20190208039A1 (en) Method for transforming data for low volume transmission of meta model based protocol which monitors power amount data of new renewable energy, and system for transmitting data for low volume transmission of meta model based protocol which monitors power amount data of new renewable energy
CN101304474B (zh) 一种机顶盒平台上的电视报刊生成系统
CN105095225A (zh) 文件数据的获取方法和装置
CN110990636A (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