基于XPATH的XML配置文件恢复方法及其系统技术方案

技术编号:14600450 阅读:150 留言:0更新日期:2017-02-09 03:42
本发明专利技术提供一种基于XPATH的XML配置文件恢复方法及其系统,方法包括:遍历随版本发布的第一配置文件中所有的叶子节点,获取所有的叶子节点的绝对路径;依据所述绝对路径,利用XPATH在第二配置文件中查询是否存在对应的叶子节点,所述第二配置文件为保存在可存储介质上的配置文件;若存在,将第二配置文件中所述叶子节点的值写入所述第一配置文件中对应叶子节点。本发明专利技术实现在系统重启配置时,保存在可存储介质上的用户配置文件能够被准确、快速地恢复到随版本发布的运行配置文件中;确保基于XML配置文件的应用程序能够正常运行。

【技术实现步骤摘要】

本专利技术涉及XML语言运用领域,具体说的是基于XPATH的XML配置文件恢复方法及其系统
技术介绍
XML语言作为可扩展标记语言,是一种允许用户对自己的标记语言进行定义的源语言,只要遵循一定的规则,XML的可扩展性几乎是无限的,而且这种扩展并不以结构混乱或影响基础配置为代价。XML文档格式的管理信息可以很容易地通过HTTP协议传输,由于HTTP是建立在TCP之上的,故管理数据能够可靠传输。XML还支持访问XML文档的标准API,如DOM等。XML格式是W3C的标准,各种平台通用,可移植性好。XPATH即为XML路径语言,它是一种用来确定XML文档中某部分位置的语言,基于XML的树状结构,提供在数据结构树中找寻节点的能力。因此,常会被用来在XML文档中进行导航。基于XML的上述优点,XML文件常常被用来保存应用程序的配置。对于以XML文件保存配置的应用程序来说,通常情况下,在发布软件版本时会有一个XML文件作为运行配置文件,此外还有一份保存在可存储介质上的XML配置文件。这样就存在一个问题:当系统重启时就需要将保存在可存储介质上的XML配置文件的内容恢复到随版本发布的运行配置文件中。针对上面提到的当系统重启时需要将保存在可存储介质上的XML配置文件的内容恢复到随版本发布的运行配置文件中的问题,目前还没有完整的解决方案,并且,在恢复完XML配置之后系统运行的XML配置就是保存在可存储介质上的XML配置,这样就会使得应用程序在版本发布时不能支持修改原有默认值,所述修改包括用户对可存储介质上XML配置文件的修改,以及软件开发者对版本发布的XML配置文件的修改,但是在实际使用过程中常常有这方面的需求。基于上述问题,专利申请号为201310100931.4的中国专利申请公开了一种基于结构概要的数据恢复方法,提及利用XPATH来恢复XML中感兴趣的节点信息,具体公开如何解析XPATH查询语句以及如何恢复感兴趣的XML节点数据,并未提供将一个XML配置文件中的内容恢复到另一个XML配置文件中的方法。而专利申请号为201110200086.9的另一中国专利申请公开了一种基于查询工作量估算的XML分片方法,具体公开了遍历XML节点,以实现XML分片的方法,同样未提供能够很好解决上述问题的方法。因此,有必要提供一种基于XPATH的XML配置文件恢复方法及其系统,能够针对使用XML文件来保存配置的应用程序,解决现有技术没有提供可行的方案以解决XML配置文件的恢复问题。
技术实现思路
本专利技术所要解决的技术问题是:提供基于XPATH的XML配置文件恢复方法及其系统,实现在系统重启时能够将XML配置文件中的内容恢复到另一个XML配置文件中。为了解决上述技术问题,本专利技术采用的技术方案为:基于XPATH的XML配置文件恢复方法,包括:遍历随版本发布的第一配置文件中所有的叶子节点,获取所有的叶子节点的绝对路径;依据所述绝对路径,利用XPATH在第二配置文件中查询是否存在对应的叶子节点,所述第二配置文件为保存在可存储介质上的配置文件;若存在,将第二配置文件中所述叶子节点的值写入所述第一配置文件中对应叶子节点。本专利技术提供的另一个技术方案为:基于XPATH的XML配置文件恢复系统,包括:第一遍历模块,用于遍历随版本发布的第一配置文件中所有的叶子节点,获取所有的叶子节点的绝对路径;第一查询模块,用于依据所述绝对路径,利用XPATH在第二配置文件中查询是否存在对应的叶子节点,所述第二配置文件为保存在可存储介质上的配置文件;第一写入模块,用于查询模块的查询结果为若存在时,将第二配置文件中所述叶子节点的值写入所述第一配置文件中对应叶子节点。本专利技术的有益效果在于:本专利技术通过获取随版本发布的第一配置文件中从根节点开始的所有叶子节点的绝对路径,再利用XPATH依据绝对路径去可存储介质上的配置文件中查询是否存在对应的叶子节点的值,存在的话,将该值恢复到第一配置文件中。以此实现在系统重启配置时,保存在可存储介质上的用户配置文件能够被恢复到随版本发布的运行配置文件中;确保基于XML配置文件的应用程序能够正常运行。附图说明图1为本专利技术基于XPATH的XML配置文件恢复方法的基础流程示意图;图2为本专利技术实施例一的流程示意图;图3为本专利技术实施例二的流程示意图;图4为本专利技术基于XPATH的XML配置文件恢复系统的功能模块组成示意图;图5为本专利技术实施例三对应实现单实例和多实例节恢复的功能模块组成示意图;图6为本专利技术实施例三中对应实现单实例节点恢复保留版本配置文件修改节点默认值的功能模块组成示意图。标号说明:1、第一遍历模块;2、第一查询模块;3、第一写入模块;4、备份模块;5、第二查询模块;6、第一判断模块;7、第二写入模块;8、继续模块;9、第一删除模块;10、获取模块;11、第二判断模块;12、第二删除模块;13、拷贝模块;14、第二遍历模块;15、读取模块。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。本专利技术最关键的构思在于:通过获取随版本发布的运行配置文件中所有叶子节点的绝对路径,再依据绝对路径,利用XPATH在用户配置文件中查询,将对应叶子节点的值恢复到运行配置文件中,实现XML配置文件的恢复。本专利技术涉及的技术术语解释:请参照图1,本专利技术提供一种基于XPATH的XML配置文件恢复方法,包括:遍历随版本发布的第一配置文件中所有的叶子节点,获取所有的叶子节点的绝对路径;依据所述绝对路径,利用XPATH在第二配置文件中查询是否存在对应的叶子节点,所述第二配置文件为保存在可存储介质上的配置文件;若存在,将第二配置文件中所述叶子节点的值写入所述第一配置文件中对应叶子节点。从上述描述可知,本专利技术的有益效果在于:由于XML配置文件中基本都为单实例节点(节点的绝对路径唯一对应该节点)。因此,通过获取每个叶子节点的绝对路径,再结合XPATH去被恢复XML配置文件中查询待恢复叶子节点的值,将其恢复到待恢复配置文件中,能够保证待恢复配置文件中几乎所有的叶子节点的值都能得到恢复。需要说明的是,上述恢复方法够保证在单实例节点恢复过程中,当被恢复XML配置文件中不存在与待恢复叶子节点的绝对路径相同的叶子节点时获取的唯一性;而存在的情况下,利用XPATH去查询获取到的将是一个结果集,绝对路径相同的各叶子节点值在该结果集中的存放顺序是一定的,因此在将被恢复XML配置文件的内容往待恢复XML配置文件中恢复时,也能做到绝对路径相同的叶子节点两边一一对应,从而在两种情况下均能保证配置恢复的准确性。请参照图3,进一步的,所述XML配置文件恢复方法具体为:备份上一次配置恢复时随版本发布的第一配置文件,作为基准配置文件;遍历随版本发布的第一配置文件中所有的叶子节点,获取所有的叶子节点的绝对路径;依据所述绝对路径,利用XPATH分别在第二配置文件和基准配置文件中查询是否存在对应的叶子节点;若同时存在,判断第二配置文件中所述叶子节点的值与基准配置文件中所述叶子节点的值是否相同;若不同,则将第二配置文件中所述叶子节点的值写入第二配置文件中对应叶子节点;若相同,则不操作,继续查询所述绝对路径中的下一叶子节点。由上述描述可知,若第二配置文件与基准配置文件中本文档来自技高网
...

【技术保护点】
基于XPATH的XML配置文件恢复方法,其特征在于,包括:遍历随版本发布的第一配置文件中所有的叶子节点,获取所有的叶子节点的绝对路径;依据所述绝对路径,利用XPATH在第二配置文件中查询是否存在对应的叶子节点,所述第二配置文件为保存在可存储介质上的配置文件;若存在,将第二配置文件中所述叶子节点的值写入所述第一配置文件中对应叶子节点。

【技术特征摘要】
1.基于XPATH的XML配置文件恢复方法,其特征在于,包括:遍历随版本发布的第一配置文件中所有的叶子节点,获取所有的叶子节点的绝对路径;依据所述绝对路径,利用XPATH在第二配置文件中查询是否存在对应的叶子节点,所述第二配置文件为保存在可存储介质上的配置文件;若存在,将第二配置文件中所述叶子节点的值写入所述第一配置文件中对应叶子节点。2.如权利要求1所述的基于XPATH的XML配置文件恢复方法,其特征在于,所述XML配置文件恢复方法具体为:备份上一次配置恢复时随版本发布的第一配置文件,作为基准配置文件;遍历随版本发布的第一配置文件中所有的叶子节点,获取所有的叶子节点的绝对路径;依据所述绝对路径,利用XPATH分别在第二配置文件和基准配置文件中查询是否存在对应的叶子节点;若同时存在,判断第二配置文件中所述叶子节点的值与基准配置文件中所述叶子节点的值是否相同;若不同,则将第二配置文件中所述叶子节点的值写入第二配置文件中对应叶子节点;若相同,则不操作,继续查询所述绝对路径中的下一叶子节点。3.如权利要求1或2所述的基于XPATH的XML配置文件恢复方法,其特征在于,进一步包括:对所述第一配置文件中多实例中的实例进行删除,一个多实例对应仅保存一个实例;依次获取所述第一配置文件中的一多实例;判断所述第二配置文件中与所述一多实例对应的多实例中实例的个数;若个数为零,则在所述第一配置文件中删除所述一多实例对应的实例;若个数不为零,则对第一配置文件中所述一多实例中的实例进行拷贝,直至所述一多实例中的实例的个数与所述第二配置文件中所述对应的多实例中的实例的个数一致;依次遍历第一配置文件中各个多实例下的叶子节点;依据所遍历到的多实例的实例号和对应的叶子节点的名称,从所述第二配置文件中读取对应多实例下对应叶子节点的值,并将所述值写入第一配置文件中。4.如权利要求3所述的基于XPATH的XML配置文件恢复方法,其特征在于,所述依据所遍历到的多实例的实例号和对应的叶子节点的名称,从所述第二配置文件中读取对应多实例下对应叶子节点的值,并将所述值写入第一配置文件中,具体为:依据所遍历到的多实例的实例号和对应的叶子节点的名称,判断所述第二配置文件中对应多实例下对应的叶子节点是否存储有对应的值;若是,则将所述值写入第一配置文件中;若否,则不操作,继续遍历下一叶子节点。5.如权利要求1所述的基于XPATH的XML配置文件恢复方法,其特征在于,所述遍历随版本发布的第一配置文件中所有的叶子节点,获取所有的叶子节点的绝对路径,具体为:通过深度优先算法遍历随版本发布的第一配置文件中所有的叶子节点,在遍历过程中保持中间节点信息,获取从根节点开始所有的叶子节点的绝对路径。6.基于XPATH的XML配置文件恢复系统,其特征在于,包括:第一遍历模块,用于遍历随版本发布的第...

【专利技术属性】
技术研发人员:倪晋华俞大风
申请(专利权)人:福建三元达网络技术有限公司
类型:发明
国别省市:福建;35

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

1