[发明专利]基于可变内存预申请及HASH的快速XML解析方法无效

专利信息
申请号: 201110324076.6 申请日: 2011-10-21
公开(公告)号: CN103064859A 公开(公告)日: 2013-04-24
发明(设计)人: 浦晶 申请(专利权)人: 上海湾流仪器技术有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 上海智信专利代理有限公司 31002 代理人: 胡美强
地址: 200030 上海市*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 可变 内存 申请 hash 快速 xml 解析 方法
【说明书】:

技术领域

发明涉及一种解析方法,特别是涉及一种基于可变内存预申请及HASH的快速XML解析方法。

背景技术

XML(Extensible Markup Language,可扩展标记语言)是一套使用上规则严谨但是简单的格式化描述数据语言,被广泛用来作为跨平台之间交互数据的形式,在XML文档中,标签按约定的顺序进行嵌套组织,文档必须符合XML的语法规范。

为此,针对XML文档的解析技术随即出现了,XML解析是将XML数据从其序列化字符串格式转换为分层格式的过程。现有的XML解析工具,实现了XML文档的解析存储,以及对XML文档的任意标签的读取方法。如TinyXml,是一个使用C++语言编写的开源XML解析库,能够在Windows或Linux中编译使用,公开了一套解析及获取XML文档信息的系统和方法。

其中,所述系统原理如下:通过解析XML文件,将文档分解成XML的各种元素,并利用firstchild-nextsibling tree多叉树形结构表示这些元素之间的顺序关系以及嵌套包含关系,在内存中生成DOM模型,即文档对象模型,然后,通过对DOM模型的访问,达到获取XML文档信息的目的。

TinyXml根据XML的各种元素主要定义了以下类:TiXmlBase:整个TinyXML模型的公共基类;TiXmlNode:DOM树中节点元素的基类型;TiXmlDocument:对应于XML文档整体的一个对象;TiXmlDeclaration:对应XML声明部分的对象;TiXmlComment:对应XML文档中的注释部分;TiXmlElement:对应于XML文档中的普通元素对象,普通元素可有属性,对应于TiXmlAttribute;TiXmlText:对应于XML文档中元素中的文本信息对象。通过以上类,便可由XML文件生成整个DOM模型。

现有的XML解析技术存在如下缺陷:在解析XML文档,生成DOM模型的各种元素时,对于每个元素都需要对其进行动态指配内存。

该实现方法,尤其当XML文档比较大,或者利用XML文档进行的系统间消息交换较为频繁时,由于频繁动态分配内存而导致的解析文件速度较慢的缺陷便会暴露。

另一方面,现有的XML解析技术,在生成DOM模型树时,使用了保存树中的每个节点保存其父节点、前后兄弟节点、首末孩子节点的指针的方法,但是,若XML文档存在大量不同元素节点时,读取某一元素节点信息,只能通过从头到尾遍历DOM树的方法,而不是以某种策略进行快速遍历。

发明内容

本发明所要解决的技术问题是提供一种基于可变内存预申请及HASH的快速XML解析方法,其提高了XML解析的速度;同时解决了在查询内存树只能通过全遍历的问题,使得应用能通过Hash索引快速定位。

本发明是通过下述技术方案来解决上述技术问题的:一种基于可变内存预申请及HASH的快速XML解析方法,其特征在于,该解析方法包括以下步骤:

步骤一:读取XML文档到Xml Content,并生成Document的Xml Root Node节点;

步骤二:对Xml Content进行语法分析,解析XML文档;语法分析指示解析部分的分类,进行不同分支的处理;

步骤三:若分析结果为Node,则会进入迭代算法,通过Xml Free Node Linklist从预申请内存Static Node List中,取出第一个节点,存放Node信息,并进行父子Node关系的链接;对于兄弟关系的Node的连接处理,使用链表方式关联,若Hash索引开关开启,同时根据其Node名称为键值使用Hash进行链接;

步骤四:若分析结果为Node下属的Attribute,则通过Xml Free Attribute Linklist从预申请内存Static Attribute List中,取出第一个节点,存放Attribute信息,进行兄弟Attribute的关系链接,并进行Node-Attribute关系的链接;

步骤五:通过步骤三、步骤四的迭代算法之后,整个XML文档已映射为Document内存树,在此基础上,可进行XML文档的任意元素节点的查询;若Hash索引开关开启,通过Hash索引搜索;若Hash索引开关关闭,通过Document树遍历搜索。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海湾流仪器技术有限公司,未经上海湾流仪器技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201110324076.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top