XML文档的解析方法及解析装置与流程

文档序号:11582638阅读:318来源:国知局
XML文档的解析方法及解析装置与流程

本发明涉及计算机技术领域,具体涉及一种xml文档的解析方法及解析装置。



背景技术:

随着web开发的日益流行,数据交互也越发的重要。无论是前端和后端之间的交互,还是客户端和服务器之间的交互,异或是不同服务器之间的交互都体现了数据的交互。

而网络的本质就是一个数据之间互相传递、互相修改、互相影响的拓扑结构。为了解决数据之间的传递问题,国际之间渐渐形成了两种规范:一种是基于特殊符号的传递方式,如json(javascriptobjectnotation,一种轻量级的数据交换格式);另一种是基于一定格式的传递方式,如xml(extensiblemarkuplanguage,扩展标记语言)。json现在依然只是在web端比较流行,而xml却一直占据巨大的数据交互的份额。

此外,map接口在编程过程中是需要经常用到的,其储存了成对的键-值对象,提供key(键)到value(值)的映射),能够实现根据key快速查找value。

但是,目前却没有提供xml与map之间的转换方法,于是需要程序员自己根据当前的业务报文来书写转换方法,但是较低的使用范围和重复利用率,成为了数据交互这上面的一个比较尴尬的问题。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本发明的目的在于提供一种xml文档的解析方案,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明的一个方面,提供了一种xml文档的解析方法,包括以下步骤:获取待解析的xml文档,并获取一指定节点的信息;解析所述xml文档,得到所述xml文档中的所有节点;在所述所有节点中匹配所述指定节点,并获取所述指定节点的相关数据;根据所述指定节点的相关数据生成对应的map接口。

在本发明的一些实施例中,基于前述方案,解析所述xml文档,得到所述xml文档中的所有节点的步骤,包括:解析所述xml文档,得到所述xml文档中的根节点;基于所述根节点,循环获取所述xml文档中的所有节点。

在本发明的一些实施例中,基于前述方案,还包括:根据所述xml文档中的所有节点,生成所述xml文档的节点列表;在所述所有节点中匹配所述指定节点的步骤,包括:在所述节点列表中匹配所述指定节点。

在本发明的一些实施例中,基于前述方案,所述指定节点的相关数据包括:所述指定节点的名称和所述指定节点的内容。

在本发明的一些实施例中,基于前述方案,根据所述指定节点的相关数据生成对应的map接口的步骤,包括:将所述指定节点的名称作为所述map接口的key,并将所述指定节点的内容作为所述map接口的value,以生成所述map接口。

在本发明的一些实施例中,基于前述方案,通过dom4j工具解析所述xml文档,得到所述xml文档中的所有节点。

根据本发明的另一方面,还提供了一种xml文档的解析装置,包括:第一获取单元,用于获取待解析的xml文档,并获取一指定节点的信息;解析单元,用于解析所述xml文档,得到所述xml文档中的所有节点;第二获取单元,用于在所述所有节点中匹配所述指定节点,并获取所述指定节点的相关数据;生成单元,用于根据所述指定节点的相关数据生成对应的map接口。

在本发明的一些实施例中,基于前述方案,所述解析单元配置为:解析所述xml文档,得到所述xml文档中的根节点;基于所述根节点,循环获取所述xml文档中的所有节点。

在本发明的一些实施例中,基于前述方案,所述解析单元还配置为:根据所述xml文档中的所有节点,生成所述xml文档的节点列表;所述第二获取单元配置为:在所述节点列表中匹配所述指定节点。

在本发明的一些实施例中,基于前述方案,所述指定节点的相关数据包括:所述指定节点的名称和所述指定节点的内容。

在本发明的一些实施例中,基于前述方案,所述生成单元配置为:将所述指定节点的名称作为所述map接口的key,并将所述指定节点的内容作为所述map接口的value,以生成所述map接口。

在本发明的一些实施例所提供的技术方案中,通过提供xml文档与map接口之间的转换方案,使得在需要获取某个节点的属性时,能够基于转换得到的map接口,直接根据节点的名称来查找节点的内容,快速地实现了数据的获取过程,进而使得编程人员无需关心如何进行数据转化,减轻了编程人员的代码开发压力,有利于提高产品的开发效率。

附图说明

图1示意性示出了根据本发明的第一个实施例的xml文档的解析方法的流程图;

图2示意性示出了根据本发明的实施例的xml文档转换为map的流程图;

图3示意性示出了根据本发明的第二个实施例的xml文档的解析方法的流程图;

图4示意性示出了根据本发明的实施例的xml文档的解析装置的框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

图1示意性示出了根据本发明的第一个实施例的xml文档的解析方法的流程图。

参照图1,根据本发明的第一个实施例的xml文档的解析方法,包括以下步骤:

步骤s10,获取待解析的xml文档,并获取一指定节点的信息。

在该实施例中,指定节点的个数并不作具体限定,也即是说,指定节点的个数既可以是一个,也可以是多个。指定节点的信息需要能够对该节点进行标识,比如可以是该节点的名称。

步骤s12,解析所述xml文档,得到所述xml文档中的所有节点。

根据本发明的示例性实施例,步骤s12包括:解析所述xml文档,得到所述xml文档中的根节点;基于所述根节点,循环获取所述xml文档中的所有节点。

更具体地,可以通过dom4j(是一个开源的xml解析包)工具解析所述xml文档,得到所述xml文档中的所有节点。

当得到xml文档的所有节点之后,可以生成xml文档的节点列表,这样可以便于后续在节点列表中查找相应的节点。

步骤s14,在所述所有节点中匹配所述指定节点,并获取所述指定节点的相关数据。

在本发明的实施例中,指定节点的相关数据包括:所述指定节点的名称和所述指定节点的内容。

其中,若xml文档中的节点是通过节点列表的形式进行存储的,那么步骤s14具体包括:在所述节点列表中匹配所述指定节点。通过采用节点列表,可以快速地实现节点的匹配过程。

步骤s16,根据所述指定节点的相关数据生成对应的map接口。

根据本发明的示例性实施例,步骤s16包括:将所述指定节点的名称作为所述map接口的key,并将所述指定节点的内容作为所述map接口的value,以生成所述map接口。

综上,如图2所示,本发明实施例的方案可以自动对xml文档进行解析并转换为map接口,极大地减轻了编程人员的代码开发压力。

具体地,当需要将xml解析为map时,会将xml的节点,层层往map中赋值,其中xml节点的名称为map的key,xml节点的内容为map的value;最后将map最深处的key-value键值对循环到最外面。如果存在重复的key,则其对应的value转换为list方式进行存储。最终在需要取用某个属性时,可以直接根据节点的名称,找到需要的节点的内容,快速的完成需要的数据获取。具体流程可参照图3。

如图3所示,根据本发明的第二个实施例的xml文档的解析方法,包括:

步骤s302,获得xml文档和需要的参数。需要说明的是,需要的参数即为给定的节点的相关信息,比如给定的节点的名称。

步骤s304,使用dom4j解析该xml文档,获得顶端元素。其中,顶端元素即为根节点。

步骤s306,循环获得所有元素(即获得所有节点),放入list集合中。

步骤s308,遍历需要的参数,在list集合中匹配相应的节点。即根据给定的节点的相关信息在list集合中匹配对应的节点。

步骤s310,获取匹配到的节点的数据。

步骤s312,放入集合中作为输出。

步骤s314,返回结果map。其中,xml节点的名称为map的key,xml节点的内容为map的value。

图4示意性示出了根据本发明的实施例的xml文档的解析装置的框图。

如图4所示,根据本发明的实施例的xml文档的解析装置400,包括:第一获取单元402、解析单元404、第二获取单元406和生成单元408。

具体地,第一获取单元402用于获取待解析的xml文档,并获取一指定节点的信息;解析单元404用于解析所述xml文档,得到所述xml文档中的所有节点;第二获取单元406用于在所述所有节点中匹配所述指定节点,并获取所述指定节点的相关数据;生成单元408用于根据所述指定节点的相关数据生成对应的map接口。

在本发明的一些实施例中,基于前述方案,所述解析单元404配置为:解析所述xml文档,得到所述xml文档中的根节点;基于所述根节点,循环获取所述xml文档中的所有节点。

在本发明的一些实施例中,基于前述方案,所述解析单元404还配置为:根据所述xml文档中的所有节点,生成所述xml文档的节点列表;所述第二获取单元406配置为:在所述节点列表中匹配所述指定节点。

在本发明的一些实施例中,基于前述方案,所述指定节点的相关数据包括:所述指定节点的名称和所述指定节点的内容。

在本发明的一些实施例中,基于前述方案,所述生成单元408配置为:将所述指定节点的名称作为所述map接口的key,并将所述指定节点的内容作为所述map接口的value,以生成所述map接口。

本发明上述实施例提供的xml解析为map的方案,可以提供对小型xml文件的快速解析,从而无需关心如果进行数据转化,让程序员更加专注于技术的提升和业务的逻辑。同时解决了仅需要个xml文档的少量数据,但需要拼装xml文档对应的整个对象的问题,有效减少了协议对象的创建,减轻程序员代码开发压力和强度。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1