专利名称:一种xml文档的表格存储方法及装置的制作方法
技术领域:
本发明属于文档应用领域,具体涉及ー种XML文档的表格存储方法及装置。
背景技术:
当前在例如CRM(客户关系管理,customer relationship management,简称“CRM”)、OCS (在线计费系统,Online Charging System,简称 “0CS”)和 ESB (企业服务总线,enterprise service bus,简称“ESB”)等业务系统或一些XML处理工具等应用系统中广泛使用XML (可扩展标记语言,extensible markup language,简称“XML”)并需要解析和存储XML文档,由于XML文档便于扩展、便于解析和业务处理,所以以XML文档的方式格式化数据或作为通信协议的情况普遍存在,也给业务系统扩展性、松耦合性等方面带来了很大的方便。但是正因为XML文档自身可扩展性的特性,如能存储方便则应用会更广泛,但在表格存储如数据库表的存储方式中,如何存储XML文档是ー个十分棘手的问题,ー个方面,由于XML文档的数据太易于扩展,所以其整体大小不固定,很容易超出数据库单个字段的最大容量;另ー方面,如果把整个XML文档都存储于ー个字段中,可读性非常差,管理人员需要特殊的方式才能了解数据或数据分析;又一方面,很难与现有技术结合使用,特别是搜索、管理不方便,如在数据库中SQL (结构化查询语言,structured query language,简称“SQL”)语句很难深入到XML文档内部做数据的搜索、更新、管理等。
发明内容
本发明实施例提供ー种XML文档的表格存储方法及装置,以期实现XML文档的表格存储,便于在表格中对XML文档数据进行搜索、更新和管理。本发明第一方面提供ー种XML文档的表格存储方法,可包括将XML文档加载到XML文档对象模型;读取加载后的XML文档的节点信息,所述节点信息包括节点名、节点值、节点属性名和节点属性值;对所述读取的节点信息中的节点名和所述节点属性名进行路径化处理;将路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格。在第一种可能的实施方式中,所述对所述读取的节点信息中的节点名和节点属性名进行路径化处理,包括 依据根节点到所述节点的节点路径,对读取的节点的节点名进行路径化处理;依据节点属性名与该节点属性名对应的路径化的节点名的关系,对所述节点属性名进行路径化处理。结合第一方面或第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述将路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格,包括
将路径化的节点名和相应的节点值作为ー个条目写入表格;分别对应所述路径化的节点名和相应的节点值在表格中的相对位置,将所述路径化的节点名对应的每个路径化的节点属性名和相应的节点属性值作为ー个条目写入表格中该节点的路径化的节点名所在条目与另ー个节点的路径化的节点名所在条目之间。结合第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述方法还包括判断所述表格中各条目的类别,并在所述各条目中写入相应的类别标识。结合第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述方法还包括将属于同一个XML文档的条目以相同的文档标识进行标识,并将所述标识写入各条目。结合第一方面的第二种可能的实施方式,在第五种可能的实施方式中,所述方法还包括对属于同一个XML文档的所述条目以递增顺序编号,并将所述编号写入相应的条目。本发明第二方面提供ー种XML文档的表格存储装置,可包括加载单元,用于将XML文档加载到XML文档对象模型;读取单元,用于读取加载后的XML文档的节点信息,所述节点信息包括节点名、节点值、节点属性名和节点属性值;处理单元,用于对所述读取的节点信息中的节点名和节点属性名进行路径化处理;写入単元,用于将路径化的节点名和节点属性名以及相应的节点值和节点属性值与入表格。在第一种可能的实施方式中,所述处理单元还包括第一子处理单元,用于依据根节点到所述节点的节点路径,对读取的节点的节点名进行路径化处理;第二子处理单元,用于依据节点属性名与该节点属性名对应的路径化的节点名的关系,对所述节点属性名进行路径化处理。结合第二方面或第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述写入単元用于将路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格,具体为将路径化的节点名和相应的节点值作为ー个条目写入表格;分别对应所述路径化的节点名和相应的节点值在表格中的相对位置,将所述路径化的节点名对应的每个路径化的节点属性名和相应的节点属性值作为ー个条目写入表格中该节点的路径化的节点名所在条目与另ー个节点的路径化的节点名所在条目之间。结合第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述装置还包括标识单元,用于判断所述表格中各条目的类别,并在所述各条目中写入相应的类别标识。结合第二方面的第三种可能的实施方式,在第四种可能的实施方式中,标识单元,还用于将属于同一个XML文档的条目以相同的文档标识进行标识,并将所述标识写入各条目。结合第二方面的第二种可能的实施方式,在第五种可能的实施方式中,所述装置还包括编号单元,用于对属于同一个XML文档的所述条目以递增顺序编号,并将所述编号写入相应的条目。由上可见,在本发明ー些可行的实施方式中,通过将XML文档中的节点名和节点属性名进行路径化处理,并将路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格,基于上述创新机制,实现了 XML文档的表格存储,便于在表格中对XML文档的数据进行扩展、读取、捜索和管理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的XML文档的表格存储方法的应用环境示意图;图2为本发明ー种XML文档的表格存储方法的一个实施例的方法流程图;图3为对图2所示实施例的XML文档的表格存储方法的进ー步细化的方法流程图;图4为本发明ー种XML文档的表格存储装置的一个实施例的结构示意图;图5为对图4所示实施例的XML文档的表格存储装置的进ー步细化的结构示意图;图6为本发明另ー个实施例提供的XML文档的表格存储装置的硬件架构图。
具体实施例方式本发明实施例提供ー种XML文档的表格存储方法及装置,以期实现XML文档的表格存储,便于在表格中对XML文档数据进行扩展、读取、捜索和管理。为使本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面通过具体的实施例,分别进行详细的说明。如图1所示,图1显示的是本发明实施例提供的XML文档的表格存储方法的应用环境示意图,采用通用计算机系统结构。计算机系统可具体是基于处理器的计算机,如通用个人计算机(PC),便携式设备如平板计算机,或智能手机。计算机系统包括总线,处理器,存储器,通信接ロ,输入设备和输出设备。总线可包括一通路,在计算机各个部件之间传送信息。处理器可以是ー个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integratedcircuit,简称“ASIC”),或一个或多个用于控制本发明方案程序执行的集成电路。计算机系统还包括一个或多个存储器,可以是只读存储器(read-only memory,简称“ROM”)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,简称“RAM”)或者可存储信息和指令的其他类型的动态存储设备,也可以是磁盘存储器。这些存储器通过总线与处理器相连接。输入设备可包括ー种装置,以接收用户输入的数据和信息,例如键盘,鼠标、摄像头,扫描仪,光笔,语音输入装置,触摸屏等。输出设备可包括ー种装置,以允许输出信息给用户,包括显示屏,打印机,扬声器等。计算机系统还包括ー个通信接ロ,使用任何收发器ー类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等 存储器,如RAM,保存有执行本发明方案的程序,还可以保存有操作系统和其他应用程序。执行本发明方案的程序代码保存在存储器中,并由处理器来控制执行。图2为本发明ー种XML文档的表格存储方法的一个实施例的方法流程图。如图2所示,该方法包括步骤SlOldf XML文档加载到XML文档对象模型。其中,XML文档可以为XML文件或XML报文。XML文档中包括以下节点信息XML节点,是指从(且包括)开始标签直到(且包括)结束标签的部分;XML节点名,是指XML节点的标签值;XML节点值,是指开始标签(不包括)和结束标签(不包括)之间的内容(不包含子节点);XML节点属性,是指XML开始标签内的键值对(属性值必须被引号包围);XML节点属性名,是指XML开始标签内的键值对的键名;XML节点属性值,是指XML开始标签内的键值对的值,由于属性值必须被引号包围,所以属性值不包含两边的引号。DOM (文档对象模型,Document Object Model,简称“D0M”)定义了访问和操作XML文档的标准方法,在DOM的树结构中会呈现XML文档中的节点名、节点属性名、节点值和节点属性值这些节点信息。 本发明实施例中,计算机内存调用D0M,并将XML文档加载到DOM中,再执行后续的操作。步骤S102,读取加载后的XML文档的节点信息,该节点信息包括节点名、节点值、节点属性名和节点属性值。具体地,根据DOM的树结构读取加载后的XML文档的节点信息,该节点信息包括节点名、节点值、节点属性名和节点属性值。计算机的内存可以一次性全部读取加载后的XML文档的所有节点的节点信息,也可以一次读取部分节点的节点信息。步骤S103,对读取的节点信息中的节点名和节点属性名进行路径化处理。对读取的节点信息中的节点名和节点属性名进行路径化处理,形成路径化的节点名和节点属性名,具体为依据根节点到该节点的节点路径,对该节点的节点名进行路径化处理,形成路径化的节点名,以及依据节点属性名与该节点属性名对应的路径化的节点名的关系,对该节点属性名进行路径化处理,形成路径化的节点属性名。对节点名和节点属性名的路径化处理将在后续实施例中结合实例进行详细说明。步骤S104,将路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格。
将所有路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格,从而完成XML文档的表格存储。根据本发明实施例提供的XML文档的表格存储方法,通过将XML文档中的节点名和节点属性名进行路径化处理,并将路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格,在使用表格存储的XML文档时,如需对表格中的数据进行扩展或更新时,可以方便地将路径化的节点名和节点属性名以及相应的节点值和节点属性值插入表格,从而保证XML文档的可扩展性;同吋,由于路径化的节点名和节点属性名以及相应的节点值和节点属性值不是存储于一个字段中,可以避免扩展XML文档的数据时超出数据库单个字段的最大容量,也便于数据的读取、捜索和管理。基于上述创新机制,实现了 XML文档的表格存储,便于在表格中对XML文档的数据进行扩展、读取、搜索和管理。图3为对图2所示实施例的XML文档的表格存储方法的进ー步细化的方法流程图。下面结合一个XML文档样例对图3所示的XML文档的表格存储方法进行详细描述。该XML文档样例如表I所示表IXML文档样例
权利要求
1.一种XML文档的表格存储方法,其特征在于,包括将XML文档加载到XML文档对象模型;读取加载后的XML文档的节点信息,所述节点信息包括节点名、节点值、节点属性名和节点属性值;对所述读取的节点信息中的节点名和节点属性名进行路径化处理;将路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格。
2.如权利要求1所述的方法,其特征在于,所述对所述读取的节点信息中的节点名和节点属性名进行路径化处理,包括依据根节点到所述节点的节点路径,对读取的节点的节点名进行路径化处理;依据节点属性名与该节点属性名对应的路径化的节点名的关系,对所述节点属性名进行路径化处理。
3.如权利要求1或2所述的方法,其特征在于,所述将路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格,包括将路径化的节点名和相应的节点值作为一个条目写入表格;分别对应所述路径化的节点名和相应的节点值在表格中的相对位置,将所述路径化的节点名对应的每个路径化的节点属性名和相应的节点属性值作为一个条目写入表格中该节点的路径化的节点名所在条目与另一个节点的路径化的节点名所在条目之间。
4.如权利要求3所述的方法,其特征在于,还包括判断所述表格中各条目的类别,并在所述各条目中写入相应的类别标识。
5.如权利要求4所述的方法,其特征在于,还包括将属于同一个XML文档的条目以相同的文档标识进行标识,并将所述标识写入各条目。
6.如权利要求3所述的方法,其特征在于,还包括对属于同一个XML文档的所述条目以递增顺序编号,并将所述编号写入相应的条目。
7.—种XML文档的表格存储装置,其特征在于,包括加载单元,用于将XML文档加载到XML文档对象模型;读取单元,用于读取加载后的XML文档的节点信息,所述节点信息包括节点名、节点值、节点属性名和节点属性值;处理单元,用于对所述读取的节点信息中的节点名和节点属性名进行路径化处理;写入单元,用于将路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格。
8.如权利要求7所述的装置,其特征在于,所述处理单元还包括第一子处理单元,用于依据根节点到所述节点的节点路径,对读取的节点的节点名进行路径化处理;第二子处理单元,用于依据节点属性名与该节点属性名对应的路径化的节点名的关系,对所述节点属性名进行路径化处理。
9.如权利要求7或8所述的装置,其特征在于,所述写入单元用于将路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格,具体为将路径化的节点名和相应的节点值作为一个条目写入表格;分别对应所述路径化的节点名和相应的节点值在表格中的相对位置,将所述路径化的节点名对应的每个路径化的节点属性名和相应的节点属性值作为一个条目写入表格中该节点的路径化的节点名所在条目与另一个节点的路径化的节点名所在条目之间。
10.如权利要求9所述的装置,其特征在于,还包括 标识单元,用于判断所述表格中各条目的类别,并在所述各条目中写入相应的类别标识。
11.如权利要求10所述的装置,其特征在于, 标识单元,还用于将属于同一个XML文档的条目以相同的文档标识进行标识,并将所述标识写入各条目。
12.如权利要求9所述的装置,其特征在于,还包括 编号单元,用于对属于同一个XML文档的所述条目以递增顺序编号,并将所述编号写入相应的条目。
全文摘要
一种XML文档的表格存储方法及装置。在本发明一些可行的实施方式中,通过将XML文档中的节点名和节点属性名进行路径化处理,并将路径化的节点名和节点属性名以及相应的节点值和节点属性值写入表格,基于上述创新机制,实现了XML文档的表格存储,便于在表格中对XML文档的数据进行扩展、读取、搜索和管理。本发明还提供了相应的XML文档的表格存储装置。
文档编号G06F17/30GK103049494SQ20121052386
公开日2013年4月17日 申请日期2012年12月7日 优先权日2012年12月7日
发明者吴万里 申请人:华为技术有限公司