System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理,具体涉及一种xml文件的解析方法及装置。
技术介绍
1、可扩展标记语言xml是一种标记语言,用于描述数据的结构和内容。在许多应用程序中,xml文件通常用于存储和交换数据。因此,解析xml文件以读取和处理其中的数据是一项非常重要的任务。
2、现有技术中,当需要多种xml文件进行解析时,显然这些xml文件的数据结构是不同的,对于xml文件不同的数据结构,需要相对应的一套解析逻辑,如每次都根据xml文件不同的数据结构建立一套解析逻辑,会造成开发效率较低的问题。
技术实现思路
1、有鉴于此,本专利技术实施例提供一种xml文件的解析方法及装置,以实现同一套解析逻辑对不同数据结构类型的xml文件解析,提高开发效率的目的。
2、为实现上述目的,本专利技术实施例提供如下技术方案:
3、本专利技术实施例第一方面公开了一种xml文件的解析方法,所述方法包括:
4、获取xml文件中与根节点的首个子节点同级的目标节点;所述xml文件存在对应的数据结构,所述数据结构包含多个与所述xml文件中节点对应的数据结构层级;
5、在所述目标节点对应的目标数据结构层级中,解析所述目标节点得到解析数据;
6、将所述解析数据存储到所述目标数据结构层级对应的层级存储变量;
7、当所述目标节点解析完毕时,将各个所述层级存储变量中的所述解析数据存储到所述数据结构;
8、若所述目标节点存在子节点,将所述子节点作为
9、优选的,在所述目标节点对应的目标数据结构层级中,解析所述目标节点得到解析数据,包括:
10、获取所述数据结构的全局当前处理层级,以及所述目标节点对应的目标数据结构层级;
11、判断所述目标数据结构层级是否大于全局当前处理层级;
12、若是,将在所述目标节点之前解析的已解析节点的解析数据,从所述已解析节点的数据结构层级对应的层级存储变量复制到所述数据结构;
13、计算所述目标节点的xml节点层级与所述全局当前处理层级的差值,得到全局层级级差;
14、基于所述全局层级级差,在所述目标数据结构层级中,解析所述目标节点得到解析数据;
15、获取下一个所述目标节点,返回执行所述获取所述数据结构的全局当前处理层级,以及所述目标节点对应的数据结构层级这一步骤,直到与根节点的首个子节点同级的目标节点解析完毕。
16、优选的,所述将在所述目标节点之前解析的已解析节点的解析数据,从所述已解析节点的数据结构层级对应的层级存储变量复制到所述数据结构,包括:
17、获取在所述目标节点之前解析的前一节点对应的数据结构层级;
18、将全局层级突变标志设置为有效;
19、基于所述前一节点、所述前一节点的数据结构层级以及预设存储规则,将在所述目标节点之前解析的已解析节点的解析数据,从所述已解析节点的数据结构层级对应的层级存储变量复制到所述数据结构,并将所述全局层级突变标志设置为无效。
20、优选的,所述基于所述全局层级级差,在所述目标数据结构层级中,解析所述目标节点得到解析数据,包括:
21、判断所述全局层级级差是否大于0或者等于0;
22、将全局存储标志设置为有效;
23、若所述全局层级级差等于0,基于所述目标数据结构层级,从预先构建的数据解析函数映射表中查询到对应的解析函数;
24、利用所述解析函数,在所述目标数据结构层级中,解析所述目标节点得到解析数据;
25、若所述全局层级级差大于0,并且所述全局当前处理层级小于所述数据结构的最大层级,则将所述全局层级级差减去1;
26、将所述目标数据结构层级的下一数据结构层级,作为目标数据结构层级,返回执行所述判断所述全局层级级差是否大于0或者等于0这一步骤,直到所述目标节点解析完毕。
27、优选的,所述将各个层级存储变量中的解析数据存储到所述数据结构,包括:
28、当每一所述目标节点解析完毕时,判断所述目标数据结构层级对应的节点是否全部解析完毕;
29、若是,判断所述目标数据结构层级是否小于所述数据结构的最大层级;
30、若小于,基于所述目标节点、所述目标数据结构层级和预设存储规则,将各个层级存储变量中的解析数据存储到所述数据结构;所述预设存储规则表征的存储逻辑包括:将所述目标数据结构层级的下一数据结构层级对应的层级存储变量中的解析数据,复制到所述目标数据结构层级对应的层级存储变量之后,根据xml文件中的节点层级,从所述目标节点开始逐层存储。
31、优选的,所述基于所述目标节点、所述目标数据结构层级和预设存储规则,将各个层级存储变量中的解析数据存储到所述数据结构,包括:
32、将所述目标数据结构层级的下一数据结构层级对应的层级存储变量中的解析数据,复制到所述目标数据结构层级对应的层级存储变量;
33、若所述目标节点不存在父节点,则将所述目标数据结构层级对应的层级存储变量中的解析数据,复制到所述数据结构;
34、若所述目标节点存在父节点,则获取所述目标节点的父节点对应的父节点数据结构层级;
35、将所述目标数据结构层级对应的层级存储变量中的解析数据,复制到所述父节点数据结构层级对应的层级存储变量;
36、将所述父节点作为目标节点,返回执行所述若所述目标节点存在父节点,则获取所述目标节点的父节点对应的父节点数据结构层级这一步骤,直到所述目标节点不存在父节点。
37、优选的,所述方法还包括:
38、获取所述xml文件的根节点的最后一个子节点,以及全局当前处理层级;
39、判断全局存储标志是否为有效;所述全局存储标志为有效表征存在已经存储到层级存储变量的解析数据,还未被存储到数据结构中的情况;
40、若所述局存储标志为有效,则将所述全局当前处理层级的下一数据结构层级对应的层级存储变量中的解析数据,复制到所述全局当前处理层级对应的层级存储变量中;
41、将所述全局当前处理层级对应的层级存储变量,复制到所述根节点的数据结构层级对应的层级存储变量中;
42、将所述根节点的数据结构层级对应的层级存储变量中的解析数据,复制到所述数据结构中,并将所述全局存储标志设置为无效。
43、本专利技术实施例第二方面公开了一种xml文件的解析装置,所述装置包括:
44、获取单元,用于获取xml文件中与根节点的首个子节点同级的目标节点;所述xml文件存在对应的数据结构,所述数据结构包含多个与所述xml文件中节点对应的数据结构层级;
45、解析单元,用于在所述目标节点对应的目标数据结构层级中,解析本文档来自技高网...
【技术保护点】
1.一种XML文件的解析方法,其特征在于,所述方法包括:
2.根据权利要求1所述的XML文件的解析方法,其特征在于,在所述目标节点对应的目标数据结构层级中,解析所述目标节点得到解析数据,包括:
3.根据权利要求2所述的XML文件的解析方法,其特征在于,所述将在所述目标节点之前解析的已解析节点的解析数据,从所述已解析节点的数据结构层级对应的层级存储变量复制到所述数据结构,包括:
4.根据权利要求2所述的XML文件的解析方法,其特征在于,所述基于所述全局层级级差,在所述目标数据结构层级中,解析所述目标节点得到解析数据,包括:
5.根据权利要求1所述的XML文件的解析方法,其特征在于,所述当所述目标节点解析完毕时,将各个层级存储变量中的解析数据存储到所述数据结构,包括:
6.根据权利要求5所述的XML文件的解析方法,其特征在于,所述基于所述目标节点、所述目标数据结构层级和预设存储规则,将各个层级存储变量中的解析数据存储到所述数据结构,包括:
7.根据权利要求1至6任一所述的XML文件的解析方法,其特征在于,所述方法
8.一种XML文件的解析装置,其特征在于,所述装置包括:
9.根据权利要求8所述的XML文件的解析装置,其特征在于,所述解析单元,包括:
10.根据权利要求9所述的XML文件的解析装置,其特征在于,所述复制子单元,具体用于:
...【技术特征摘要】
1.一种xml文件的解析方法,其特征在于,所述方法包括:
2.根据权利要求1所述的xml文件的解析方法,其特征在于,在所述目标节点对应的目标数据结构层级中,解析所述目标节点得到解析数据,包括:
3.根据权利要求2所述的xml文件的解析方法,其特征在于,所述将在所述目标节点之前解析的已解析节点的解析数据,从所述已解析节点的数据结构层级对应的层级存储变量复制到所述数据结构,包括:
4.根据权利要求2所述的xml文件的解析方法,其特征在于,所述基于所述全局层级级差,在所述目标数据结构层级中,解析所述目标节点得到解析数据,包括:
5.根据权利要求1所述的xml文件的解析方法,其特征在于...
【专利技术属性】
技术研发人员:朱宝康,贺雪峰,
申请(专利权)人:经纬恒润天津研究开发有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。