System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于回溯算法的关联型文件结构解析方法和装置制造方法及图纸_技高网

一种基于回溯算法的关联型文件结构解析方法和装置制造方法及图纸

技术编号:40345195 阅读:7 留言:0更新日期:2024-02-09 14:31
本发明专利技术提供一种基于回溯算法的关联型文件结构解析方法和装置,该方法包括:S1、读取关联型文件,获取关联型文件中的所有数据单元,根据所有数据单元之间的关系,构建解空间树;S2、采用剪枝函数,遍历解空间树中的所有节点,采用递归回溯的方法获取数据结构形式的根节点的属性,完成关联型文件结构解析。实现了数据结构体的自动创建,避免文件变更带来的重新设计,提了高开发效率。

【技术实现步骤摘要】

本专利技术属于数据分析,具体涉及一种基于回溯算法的关联型文件结构解析方法和装置


技术介绍

1、关联型文件指在文件内容中,各数据结构之间存在关联关系,依靠明确的标识或结构进行联系,例如xml文件中节点间包含关系、json文件中对象间包含关系等。关联型文件并不单指某一类型文件,具有普遍性,凡是具有数据结构,文件内容中有明确联系的文件都可称之为关联型文件。航空电子系统中的icd文件就是一种关联型文件,其内容定义了各机载设备间数据传输的内容,包括数据长度、传输属性、信号描述等,文件中信息以从属、关联等方式相关联。通过icd文件可将机载网络中传输的原始数据解析,还原成实际物理信号量。

2、现有关联型文件解析方法,需要首先在掌握文件内容的基础上手动构建相应数据结构体,再通过代码读取文件内容实现结构体赋值。而实际应用中,关联性文件大小增加、关系变复杂、版本频繁变更、缺少结构关系描述说明等现象使得传统方法面临开发和维护的双重挑战。一方面,当无法事先获知文件内容间的关联关系时,构建不出对应的数据结构;另一方面,文件内容的复杂多变使得代码重复设计,时间成本大且效率低。


技术实现思路

1、本专利技术的目的:针对现有的常规关联性文件结构解析方法存在一定局限性,尤其是当无法事先知道文件的结构关系时,则无法构建出用于文件解析的数据结构。此外,这也导致当文件结构发生变化时设计人员需要重新编写数据结构,造成时间成本的损失。本专利技术的目的在于克服现有技术的不足,提高开发效率,提供一种基于回溯算法的关联型文件结构解析方法和装置。

2、本专利技术第一方面提供一种基于回溯算法的关联型文件结构解析方法,包括:

3、s1、读取关联型文件,获取关联型文件中的所有数据单元,根据所有数据单元之间的关系,构建解空间树;

4、s2、采用剪枝函数,遍历解空间树中的所有节点,采用递归回溯的方法获取数据结构形式的根节点的属性,完成关联型文件结构解析。

5、可选的,根据所有数据单元之间的关系,构建解空间树,包括:

6、将关联型文件中的单个数据单元作为一个节点,将在此数据单元下的数据单元作为其子节点,与此数据单元在同一层次的数据单元作为其兄弟节点,根据关联型文件数据内容构建解空间树,解空间树中的叶子节点的属性为数据单元数值,除叶子节点外的其他子节点的属性为其具有的所有子节点。

7、可选的,采用剪枝函数,遍历解空间树中的所有节点,包括:

8、s21、获取解空间树中的任一节点作为节点a;

9、s22、获取节点a的所有未遍历过的属性;

10、s23、将节点a的任一个未遍历过的属性作为待遍历属性;

11、s24、判断待遍历属性是否为子节点,如果是子节点,则将此子节点作为新的节点a,进入s22;如果不为子节点,则进入s24;

12、s24、根据属性构造数据结构,将属性标记为遍历过的属性,判断节点a是否为根节点,若否,则将构造的数据结构上传给节点a的父节点b,替代父节点b的属性中的节点a,进入s25;若是,则进入s27;

13、s25、判断节点a是否存在未遍历过的属性,若存在,则进入s23;若不存在,则进入s26;

14、s26、采用剪枝函数在解空间树获取新的节点a;进入s22。

15、s27、判断节点a是否存在未遍历过的属性,若存在,则进入s23;若不存在,则进入s28;

16、s28、得到数据结构,完成结构解析。

17、可选的,采用剪枝函数在解空间树获取新的节点a,包括:

18、s31、获取得到当前节点a的相关标识或对应的层级;

19、s32、遍历解空间树中除当前节点a和其子节点之外的其他的剩余节点;判断剩余节点中的任一节点c是否具有当前节点a的对应标识或者层级;如果具有,则将节点c作为新的节点a;如果不具有,则继续遍历剩余解空间树,直至所有的解空间树被遍历完成。

20、可选的,当节点c具有当前节点a的对应标识或者层级时,节点c为当前节点a的父节点。

21、可选的,读取关联型文件,获取关联型文件中的所有数据单元,包括:

22、读取关联型文件内容,获取关联型文件内容的头部或者最外层数据单元;

23、获取头部或者最外层数据单元内部嵌套的数据单元;对于任意新获取的数据单元,进一步获取其同级的其他数据单元以及其内部嵌套的数据单元,直至不存在嵌套数据单元。

24、本专利技术第二方面提供一种基于回溯算法的关联型文件结构解析装置,用于执行如第一方面中任一项的方法。

25、本专利技术第三方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被运行时,实现如第一方面中任一项所述的方法。

26、本专利技术的有益效果:

27、本专利技术为了解决现有关联性文件解析方法需要预知文件结构、数据结构设计与文件结构绑定的问题,本专利技术提出了一种基于回溯算法的关联性文件结构解析方法和装置,根据文件中数据在结构中上下文或者子属性存在明确关联的特点,遍历枚举各个层级内容进行匹配,将文件中的数据内容转换成可在代码中传递使用的数据结构,实现了数据结构体的自动创建,避免文件变更带来的重新设计,提了高开发效率。本专利技术能够对数据结构关系紧密的未知的文件进行快速解析;节省传统文件解析过程中人工构造匹配数据结构的时间成本;避免人工构造结构出现的失误导致结构异常;同时避免了引入新文件进行解析导致的运维成本与代码重构,具有普遍适配性。

本文档来自技高网...

【技术保护点】

1.一种基于回溯算法的关联型文件结构解析方法,其特征在于,包括:

2.根据权利要求1所述的关联型文件结构解析方法,其特征在于,根据所有数据单元之间的关系,构建解空间树,包括:

3.根据权利要求2所述的关联型文件结构解析方法,其特征在于,采用剪枝函数,遍历解空间树中的所有节点,包括:

4.根据权利要求3所述的关联型文件结构解析方法,其特征在于,采用剪枝函数在解空间树获取新的节点A,包括:

5.根据权利要求4所述的关联型文件结构解析方法,其特征在于,当节点C具有当前节点A的对应标识或者层级时,节点C为当前节点A的父节点。

6.根据权利要求1所述的方法,其特征在于,读取关联型文件,获取关联型文件中的所有数据单元,包括:

7.一种基于回溯算法的关联型文件结构解析装置,其特征在于,用于执行如权利要求1-6中任一项的方法。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被运行时,实现如权利要求1-6中任一项所述的方法。

【技术特征摘要】

1.一种基于回溯算法的关联型文件结构解析方法,其特征在于,包括:

2.根据权利要求1所述的关联型文件结构解析方法,其特征在于,根据所有数据单元之间的关系,构建解空间树,包括:

3.根据权利要求2所述的关联型文件结构解析方法,其特征在于,采用剪枝函数,遍历解空间树中的所有节点,包括:

4.根据权利要求3所述的关联型文件结构解析方法,其特征在于,采用剪枝函数在解空间树获取新的节点a,包括:

5.根据权利要求4所述的关联型文件结构...

【专利技术属性】
技术研发人员:李斌马仔悦张晗亮于泽谢鹏代真
申请(专利权)人:中国航空工业集团公司成都飞机设计研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1