XML文档存储方法及装置技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种XML文档存储方法及
装置。
背景技术
目前XML文档以二进制数据的形式存储在以Oracle,Postgresql为代表
的传统关系型数据库中,另外,XML文档被分解为节点存储在以Founder XML
DB,berkeley XML DB为代表的专门为XML开发的数据库中。
在Oracle数据库中,XML文档以整体形式存储,查找XML文档中某一节
点的时候需要通篇查找整个XML文档,导致查找速度低;在Founder XML DB
数据库中,XML文档以若干个节点的形式进行存储,导致数据库大量的存储
空间被占用。
现有技术中,XML文档的存储形式存在查找速度低、占用大量存储空间
的问题。
发明内容
本发明实施例提供一种XML文档存储方法及装置,以提高XML文档的查
找速度,节省存储空间。
本发明实施例的一个方面是提供一种XML文档存储方法,包括:
将XML文档分解为多个片段,所述片段包括多个节点,每个节点的开始
标记和结束标记在同一片段中;
对所述多个片段分别进行存储,以使每个片段作为一个存储空间;
从所述多个片段中查找目标片段,并从所述目标片段中查找目标节点。
本发明实施例的另一个方面是提供一种XML文档存储装置,包括:
分解模块,用于将XML文档分解为多个片段,所述片段包括多个节点,
每个节点的开始标记和结束标记在同一片段中;
存储模块,用于对所述多个片段分别进行存储,以使每个片段作为一个
存储空间;
查找模块,用于从所述多个片段中查找目标片段,并从所述目标片段中
查找目标节点。
本发明实施例提供的XML文档存储方法及装置,通过将XML文档分解为
多个片段,每个片段包括多个节点,并以片段为查询单位,查找该片段中的
目标节点,相比于通篇查找整个XML文档提高了查找速度,相比于XML文档
以若干个节点的形式进行存储,节省了大量的存储空间。
附图说明
图1为本发明实施例提供的XML文档存储方法流程图;
图2为本发明实施例提供的XML文档存储装置的结构图;
图3为本发明另一实施例提供的XML文档存储装置的结构图。
具体实施方式
图1为本发明实施例提供的XML文档存储方法流程图。本发明实施例针
对XML文档的存储形式存在查找速度低、占用大量存储空间的问题,提供了
XML文档存储方法,该方法具体步骤如下:
步骤S101、将XML文档分解为多个片段,所述片段包括多个节点,每个
节点的开始标记和结束标记在同一片段中;
在本发明实施例中,将整个XML文档分解为多个片段,每个片段包括多
个节点,每个节点的开始标记和结束标记不能分割到不同的两个片段中,例
如一个XML文档包括<bid_tuple>……</bid_tuple>,则<bid_tuple>需要在
一个片段中,</bid_tuple>也需要在一个片段中,不能出现<bid_在一个片段
中,tuple>在另一个片段中。
步骤S102、对所述多个片段分别进行存储,以使每个片段作为一个存储
空间;
以每个片段为存储单元对所述多个片段分别进行存储,以使每个片段作
为一个存储空间。
步骤S103、从所述多个片段中查找目标片段,并从所述目标片段中查找
目标节点。
将XML文档分解为多个片段后,对每个片段分配一个标识号,依据标识
号可查找到相应的片段,具体的,将XML文档的分片信息存储到分片表中,
即分片表中记录有多个条目,每个条目包括一个片段的标识号、片段的大小、
片段的起始符号和结束符号;依据目标片段的标识号可从分片表中搜索到目
标片段,对目标片段进行解析即可得到该目标片段中的目标节点。
本发明实施例通过将XML文档分解为多个片段,每个片段包括多个节点,
并以片段为查询单位,查找该片段中的目标节点,相比于通篇查找整个XML
文档提高了查找速度,相比于XML文档以若干个节点的形式进行存储,节省
了大量的存储空间。
在上述实施例的基础上,所述将XML文档分解为多个片段,包括:依据
所述XML文档的大小和用户设定的片段大小将所述XML文档平均分为多个片
段。
在本发明实施例中,每个片段的大小依据用户设定的片段大小确定,对
XML文档进行分解后获得的片段的个数根据XML文档的大小和用户设定的片
段大小确定,具体的,片段的个数等于XML文档的大小除以用户设定的片段
大小。另外,所述将XML文档分解为多个片段之后,还包括:更新所述片段
的内容。
在本发明实施例中,若要更新XML文档的内容,只需更新该内容所在的
片段,而无需更新整个XML文档。
所述将XML文档分解为多个片段之后,还包括:为所述多个片段中的每
个片段设置一个标识号。
将XML文档分解为多个片段之后,为所述每个片段设置一个标识号,即
每个片段唯一对应一个标识号。
所述从所述多个片段中查找目标片段,并从所述目标片段中查找目标节
点包括:依据所述目标片段对应的标识号从所述多个片段中查找目标片段;
对所述目标片段进行解析获得所述目标节点。
将XML文档分解为多个片段后,对每个片段分配一个标识号,依据标识
号可查找到相应的片段,具体的,将XML文档的分片信息存储到分片表中,
即分片表中记录有多个条目,每个条目包括一个片段的标识号、片段的大小、
片段的起始符号和结束符号;依据目标片段的标识号可从分片表中搜索到目
标片段,对目标片段进行解析即可得到该目标片段中的目标节点。
本发明实施例通过更新片段的内容避免更新整个XML文档,提高了对整
个XML文档的更新操作,通过为每个片段设置一个标识号,查找标识号指示
的片段中的目标节点,提高了查找效率。
图2为本发明实施例提供的XML文档存储装置的结构图。本发明实施例
提供的XML文档存储装置可以执行XML文档存储方法实施例提供的处理流程,
如图2所示,XML文档存储装置20包括分解模块21、存储模块22和查找模
块23,其中,分解模块21用于将XML文档分解为多个片段,所述片段包括
多个节点,每个节点的开始标记和结束标记在同一片段中;存储模块22用于
对所述多个片段分别进行存储,以使每个片段作为一个存储空间;查找模块
23用于从所述多个片段中查找目标片段,并从所述目标片段中查找目标节点。
本发明实施例通过将XML文档分解为多个片段,每个片段包括多个节点,
并以片段为查询单位,查找该片段中的目标节点,相比于通篇查找整个XML
文档提高了查找速度,相比于XML文档以若干个节点的形式进行存储,节省
了大量的存储空间。
图3为本发明另一实施例提供的XML文档存储装置的结构图。在上述实
施例的基础上,分解模块21具体用于依据所述XML文档的大小和用户设定的
片段大小将所述XML文档平均分为多个片段。
XML文档存储装置20还包括更新模块24,更新模块24用于更新所述片
段的内容。
XML文档存储装置20还包括标识模块25,标识模块25用于为所述多个
片段中的每个片段设置一个标识号。
查找模块23具体用于依据所述目标片段对应的标识号从所述多个片段
中查找目标片段;对所述目标片段进行解析获得所述目标节点。
本发明实施例提供的XML文档存储装置可以具体用于执行上述图1所提
供的方法实施例,具体功能此处不再赘述。
本发明实施例通过更新片段的内容避免更新整个XML文档,提高了对整
个XML文档的更新操作,通过为每个片段设置一个标识号,查找标识号指示
的片段中的目标节点,提高了查找效率。
综上所述,本发明实施例通过将XML文档分解为多个片段,每个片段包
括多个节点,并以片段为查询单位,查找该片段中的目标节点,相比于通篇
查找整个XML文档提高了查找速度,相比于XML文档以若干个节点的形式进
行存储,节省了大量的存储空间;通过更新片段的内容避免更新整个XML文
档,提高了对整个XML文档的更新操作,通过为每个片段设置一个标识号,
查找标识号指示的片段中的目标节点,提高了查找效率。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,
可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,
例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外
的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或
一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或
直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连
接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作
为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,
或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或
者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,
也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单
元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件
功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机
可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指
令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)
或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述
的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、
随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以
存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各
功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分
配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以
完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以
参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对
其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通
技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,
或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并
不使相应技术方案的本质脱离本发明各实施例技术方案的范围。