CN101996252A - Xml文件中节点元素的索引信息表示法 - Google Patents

Xml文件中节点元素的索引信息表示法 Download PDF

Info

Publication number
CN101996252A
CN101996252A CN 201010547334 CN201010547334A CN101996252A CN 101996252 A CN101996252 A CN 101996252A CN 201010547334 CN201010547334 CN 201010547334 CN 201010547334 A CN201010547334 A CN 201010547334A CN 101996252 A CN101996252 A CN 101996252A
Authority
CN
China
Prior art keywords
node
xml
file
index information
xml file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 201010547334
Other languages
English (en)
Other versions
CN101996252B (zh
Inventor
吴俊�
黄晓明
陆承宇
楼伯良
王松
阮黎翔
董毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ELECTRIC POWER RESEARCH INSTITUTE OF ZHEJIANG ELECTRIC POWER Co
Zhejiang Electric Power Test And Research Institute Technical Service Center
State Grid Corp of China SGCC
Original Assignee
Electric Power Research Institute of State Grid Zhejiang Electric Power Co Ltd
Zhejiang Electric Power Test and Research Insititute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Electric Power Research Institute of State Grid Zhejiang Electric Power Co Ltd, Zhejiang Electric Power Test and Research Insititute filed Critical Electric Power Research Institute of State Grid Zhejiang Electric Power Co Ltd
Priority to CN 201010547334 priority Critical patent/CN101996252B/zh
Publication of CN101996252A publication Critical patent/CN101996252A/zh
Application granted granted Critical
Publication of CN101996252B publication Critical patent/CN101996252B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Abstract

本发明公开了一种用于解决大型XML文件的处理效率问题的XML节点元素索引信息表示方法。现有的文档对象模型在解析大型XML文件的应用中均存在一定的缺陷:DOM对计算机的性能和内存要很高的要求;SAX在处理文件编码和文件编辑时存在困难。本发明的特征在于在解析XML文件时,将原始XML文件以字节数组的形式读入内存;在加载文件的同时,扫描文件内容,并且为每一个扫描得到的节点创建索引信息,节点索引信息中的各信息单元以定长的整数形式保存。本发明加载XML文件时直接将XML文件以字节数组形式读入内存,加载效率高,速度快;索引信息以整数形式保存,容易编程处理;索引信息长度固定,实现了高效率检索。

Description

XML文件中节点元素的索引信息表示法
技术领域
本发明涉及W3C标准,具体地说是一种用于解决大型XML文件的处理效率问题的XML节点元素索引信息表示方法。
背景技术
目前在解析XML文件时,主要有二种技术:文档对象模型DOM(Document Object Model)和SAX(Simple API for XML)。
DOM是W3C的成熟标准,是一个基于树型的解析技术。在内存中构建起一棵完整的解析树,并生成解析树上的所有节点(Node)对象,以实现对整个XML文档的全面、动态的访问。
在DOM构造的节点树中,每一个元素、属性均被当作对象进行处理。内存中的解析树结构提供了很好的导航支持,但存在以下问题:首先,整个XML文档必须一次解析完成,不可能只做部分解析;其次,在内存中加载整个文档和构建完整树结构成本很高,尤其当文档非常大的时候。通常,DOM树的容量比文档容量要大一个数量级,所以它要消耗大量内存;第三,一般的DOM节点类型在互操作性上有优势,但并不是非常适合对象类型的绑定。
SAX是一个用于处理XML的事件驱动的“推”模型。它不是W3C标准,但它是一个得到广泛认可的API。SAX解析器不象DOM那样为整个文档建立树型表示,而是在读取文档时激活一系列的事件。这些事件被推给事件处理器,由事件处理器提供对文档内容的访问。
上述二种技术在解析大型XML文件的应用中均存在一定的缺陷:DOM对计算机的性能和内存要很高的要求;SAX在处理文件编码和文件编辑时存在困难。
发明内容
本发明所要解决的技术问题是克服上述现有技术存在的缺陷,提供一种在解析XML文件时对节点元素的新的处理方法,使用该方法能够以高效、灵活和低资源占用率的方式来解析大型XML文件。
为此,本发明采用如下的技术方案:XML文件中节点元素的索引信息表示法,在解析XML文件时,将原始XML文件以字节数组的形式读入内存;在加载文件的同时,扫描文件内容,并且为每一个扫描得到的节点创建索引信息。
本发明加载XML文件时直接将XML文件以字节数组形式读入内存,不需要象其它方式那样将文件转换成对象树,加载效率高,速度快;索引信息以整数形式保存,容易编程处理;索引信息长度固定,容易实现高效率检索。
索引信息中的各项内容说明如下:
●前驱节点:当前XML节点的前驱节点。如果当前节点是根节点,则前驱节点指向当前节点的起始位置;如果当前节点是第一个子节点,则前驱节点指向当前节点父节点的起始位置;其他节点的前驱节点指向上一个兄弟节点。
●节点类型:定义XML节点的类型;
●深度:XML节点在文档树中的深度;
●节点长度:XML节点的长度;
●预留单元:目前不使用,预留至将来使用;
●偏移量:XML节点首字节在整个XML文档中的位置;
●后继节点:当前XML节点的后继节点。如果当前节点是文件中最后一个节点,则后继节点指向该节点的起始位置;如果当前节点是叶子节点,则后继节点指向当前节点父节点的下一个兄弟节点;其他节点的后继节点指向下一个兄弟节点。
索引信息的长度为固定长度128bit,表示前驱节点和后继节点的信息长度均为32bit,表示节点类型的信息长度为4bit,表示深度的信息长度为8bit,表示节点长度的信息长度为20bit,表示偏移量的信息长度为30bit,表示预留单元的信息长度为2bit。因此在对大型XML文件进行索引时,总索引信息所占用的内存空间与XML文件大小成线性关系,特别是当节点字节数多时,效率高。不会如DOM处理方式中,当文件体积增大时,所占用的内存空间成倍增长。
本发明结合了传统的DOM和SAX解析XML文件的优点,通过改变XML节点元素的表示方法,使本发明的XML元素处理方法与传统方法相比有以下几方面的改进:
1)处理XML文件的速度更快。由于不需要把XML文件中的各个元素当作对象来进行处理,在处理XML元素时操作的对象是字节数组中的数据,使得编程处理时速度比传统方式有成倍提高。
2)解析XML文件时占用的存储空间小。用本发明方法处理的XML文件,所占用的内存空间只是文件本身加上额外的索引信息;与DOM将节点当作对象存储在内存的方式相比,所占用的存储空间大为减少。
3)可以方便地对文件进行随机读写、访问。索引信息中的节点地址信息保证了在访问XML文件时,可以随时访问文件的任何一个节点,而且由于索引信息是以定长的整数形式保存的,所以访问速度很快。而传统的SAX技术在访问XML文件时由于缺少有效的索引信息,在随机访问文件时就会遇到困难。
下面结合说明书附图和具体实施方式对本发明作进一步说明。
附图说明
图1为本发明XML节点元素的索引信息格式。
图2为本发明索引信息与XML文件的关系。
具体实施方式
下面以一个具体的XML文件为例,来说明该文件节点元素的索引信息表示方法。
<note>
   <to>George</to>
   <from>John</from>
   <heading>Reminder</heading>
   <body>Don′t forget the meeting!</body>
</note>
该XML文件在被读入内存的同时,根据图1定义的格式,生成如下形式的索引信息。其中每一个节点的前驱和后继节点的信息是前驱和后继节点在内存中的偏移量。
Figure BDA0000032678520000031
Figure BDA0000032678520000041
在解析该XML文件时,通过偏移量和节点长度可以确定每一个节点。如偏移量为21个字节,节点长度为6的数据内容是“from”,通过节点类型0可知该节点是一个XML标记,通过节点深度1,可判断该节点是一个二级节点。“from”的前驱节点的偏移量在第10个字节处,后继节点在第27个字节处。根据前面解析“from”节点的方法,可以分别推导出第10个字节和第27个字节处的XML元素。“from”节点的索引信息和XML文件的关系如图2所示。

Claims (4)

1.XML文件中节点元素的索引信息表示法,其特征在于在解析XML文件时,将原始XML文件以字节数组的形式读入内存;在加载文件的同时,扫描文件内容,并且为每一个扫描得到的节点创建索引信息,所述的节点索引信息包括前驱节点、节点类型、深度、节点长度、预留单元、偏移量和后继节点,节点索引信息中的各信息单元以定长的整数形式保存,所述的偏移量指XML节点首字节在整个XML文档中的位置,所述的深度指XML节点在文档树中的深度,所述的前驱节点为当前XML节点的前驱节点,所述的后继节点为当前XML节点的后继节点。
2.根据权利要求1所述的XML文件中节点元素的索引信息表示法,其特征在于如果当前节点是根节点,则前驱节点指向当前节点的起始位置;如果当前节点是第一个子节点,则前驱节点指向当前节点父节点的起始位置;其他节点的前驱节点指向上一个兄弟节点。
3.根据权利要求1或2所述的XML文件中节点元素的索引信息表示法,其特征在于如果当前节点是文件中最后一个节点,则后继节点指向该节点的起始位置;如果当前节点是叶子节点,则后继节点指向当前节点父节点的下一个兄弟节点;其他节点的后继节点指向下一个兄弟节点。
4.根据权利要求3所述的XML文件中节点元素的索引信息表示法,其特征在于节点索引信息的总长度为128bit,表示前驱节点和后继节点的信息长度均为32bit,表示节点类型的信息长度为4bit,表示深度的信息长度为8bit,表示节点长度的信息长度为20bit,表示偏移量的信息长度为30bit,表示预留单元的信息长度为2bit。
CN 201010547334 2010-11-17 2010-11-17 一种解析xml文件时对节点元素的处理方法 Active CN101996252B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010547334 CN101996252B (zh) 2010-11-17 2010-11-17 一种解析xml文件时对节点元素的处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010547334 CN101996252B (zh) 2010-11-17 2010-11-17 一种解析xml文件时对节点元素的处理方法

Publications (2)

Publication Number Publication Date
CN101996252A true CN101996252A (zh) 2011-03-30
CN101996252B CN101996252B (zh) 2013-01-16

Family

ID=43786406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010547334 Active CN101996252B (zh) 2010-11-17 2010-11-17 一种解析xml文件时对节点元素的处理方法

Country Status (1)

Country Link
CN (1) CN101996252B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622432A (zh) * 2012-02-27 2012-08-01 北京工业大学 一种xml文档结构概要间的相似性度量方法
CN103064859A (zh) * 2011-10-21 2013-04-24 上海湾流仪器技术有限公司 基于可变内存预申请及hash的快速xml解析方法
CN103635897A (zh) * 2011-06-23 2014-03-12 微软公司 对运行页面进行动态更新
CN103914467A (zh) * 2012-12-31 2014-07-09 鼎捷软件股份有限公司 数据变化标记装置
CN103914437A (zh) * 2012-12-29 2014-07-09 上海可鲁系统软件有限公司 一种基于dom模型的xml文本定位方法
CN104506464A (zh) * 2014-12-12 2015-04-08 北京中科江南软件有限公司 基于节点描述符的电子报文解析组件
CN104537084A (zh) * 2013-12-31 2015-04-22 上海可鲁系统软件有限公司 一种xml文本定位方法
CN106445837A (zh) * 2016-10-12 2017-02-22 许继集团有限公司 一种嵌入式装置历史记录存储与加载管理实现方法及装置
US10540416B2 (en) 2011-06-23 2020-01-21 Microsoft Technology Licensing, Llc Linking source code to running element

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050097128A1 (en) * 2003-10-31 2005-05-05 Ryan Joseph D. Method for scalable, fast normalization of XML documents for insertion of data into a relational database
CN101777045A (zh) * 2008-09-01 2010-07-14 西北工业大学 一种通过索引解析xml文档的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050097128A1 (en) * 2003-10-31 2005-05-05 Ryan Joseph D. Method for scalable, fast normalization of XML documents for insertion of data into a relational database
CN101777045A (zh) * 2008-09-01 2010-07-14 西北工业大学 一种通过索引解析xml文档的方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103635897A (zh) * 2011-06-23 2014-03-12 微软公司 对运行页面进行动态更新
US10540416B2 (en) 2011-06-23 2020-01-21 Microsoft Technology Licensing, Llc Linking source code to running element
US10534830B2 (en) 2011-06-23 2020-01-14 Microsoft Technology Licensing, Llc Dynamically updating a running page
CN103064859A (zh) * 2011-10-21 2013-04-24 上海湾流仪器技术有限公司 基于可变内存预申请及hash的快速xml解析方法
CN102622432A (zh) * 2012-02-27 2012-08-01 北京工业大学 一种xml文档结构概要间的相似性度量方法
CN102622432B (zh) * 2012-02-27 2013-07-31 北京工业大学 一种xml文档结构概要间的相似性度量方法
CN103914437A (zh) * 2012-12-29 2014-07-09 上海可鲁系统软件有限公司 一种基于dom模型的xml文本定位方法
CN103914467B (zh) * 2012-12-31 2017-07-14 鼎捷软件股份有限公司 数据变化标记装置
CN103914467A (zh) * 2012-12-31 2014-07-09 鼎捷软件股份有限公司 数据变化标记装置
CN104537084A (zh) * 2013-12-31 2015-04-22 上海可鲁系统软件有限公司 一种xml文本定位方法
CN104506464A (zh) * 2014-12-12 2015-04-08 北京中科江南软件有限公司 基于节点描述符的电子报文解析组件
CN106445837A (zh) * 2016-10-12 2017-02-22 许继集团有限公司 一种嵌入式装置历史记录存储与加载管理实现方法及装置
CN106445837B (zh) * 2016-10-12 2020-01-17 许继集团有限公司 一种嵌入式装置历史记录存储与加载管理实现方法及装置

Also Published As

Publication number Publication date
CN101996252B (zh) 2013-01-16

Similar Documents

Publication Publication Date Title
CN101996252B (zh) 一种解析xml文件时对节点元素的处理方法
CN102024047B (zh) 数据检索方法及装置
CN106202292B (zh) 一种基于结构化数据模型的标准信息分析方法
CN103514291B (zh) 一种文本中树形结构数据的显示方法
CN104142937B (zh) 一种分布式数据存取方法、装置和系统
CN103268340B (zh) 基于层次式索引的版式可回流文件建立和绘制方法
CN103914483A (zh) 文件存储方法、装置及文件读取方法、装置
CN102024039A (zh) 基于eoms系统的表单生成方法
CN101908034B (zh) 众核处理器片上同步方法和其系统
CN102411616A (zh) 一种数据存储方法和系统及数据管理方法
CN102622434A (zh) 数据存储方法、查找方法及装置
CN103309879A (zh) 一种管理word文档中的标记的方法及装置
CN108664577B (zh) 一种基于flash空闲区的文件管理方法及系统
CN101408882B (zh) 一种授权文档的检索方法和系统
CN102270238A (zh) 构建语文知识点拓展的方法和装置
CN102289445A (zh) Xml文件解析方法、xml文件解析装置和终端
CN111930708B (zh) 基于Ceph对象存储的对象标签的扩展系统及方法
CN104102552A (zh) 一种消息处理方法及装置
CN103399904A (zh) 数据处理方法及数据处理系统
CN104715070A (zh) 一种大图像文件及生成和读取方法
CN106777107A (zh) 一种数字标本瓦片数据存储的方法
CN105574164A (zh) Excel文档的数据解析方法及装置
KR101331383B1 (ko) 데이터 처리 방법 및 장치
CN101894098B (zh) 一种内嵌字体数据处理方法及装置
Sureshrao et al. MapReduce-Based warehouse systems: a survey

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: ZHEJIANG ELECTRIC POWER TESTING + RESEARCH INSTITU

Free format text: FORMER OWNER: ZHEJIANG ELECTRIC POWER TESTING + RESEARCH INSTITUTE TECHNOLOGY SERVICE CENTER

Effective date: 20121101

C41 Transfer of patent application or patent right or utility model
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: The eight district of Hangzhou city in Zhejiang province 310014 Huadian Zhaohui under No. 1 Lane

Applicant after: Electric Power Research Institute of Zhejiang electric power company

Applicant after: ZHEJIANG ELECTRIC POWER TEST AND Research Institute TECHNICAL SERVICE CENTER

Address before: The eight district of Hangzhou city in Zhejiang province 310014 Huadian Zhaohui under No. 1 Lane

Applicant before: ZHEJIANG ELECTRIC POWER TEST AND Research Institute

Applicant before: ZHEJIANG ELECTRIC POWER TEST AND Research Institute TECHNICAL SERVICE CENTER

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: ZHEJIANG ELECTRIC POWER TEST AND RESEARCH INSITITUTE TO: ZHEJIANG ELECTRIC POWER RESEARCH INSTITUTE OF ZHEJIANG ELECTRIC POWER CORPORATION

TA01 Transfer of patent application right

Effective date of registration: 20121101

Address after: The eight district of Hangzhou city in Zhejiang province 310014 Huadian Zhaohui under No. 1 Lane

Applicant after: Electric Power Research Institute of Zhejiang electric power company

Applicant after: ZHEJIANG ELECTRIC POWER TEST AND Research Institute TECHNICAL SERVICE CENTER

Applicant after: State Grid Corporation of China

Address before: The eight district of Hangzhou city in Zhejiang province 310014 Huadian Zhaohui under No. 1 Lane

Applicant before: Electric Power Research Institute of Zhejiang electric power company

Applicant before: ZHEJIANG ELECTRIC POWER TEST AND Research Institute TECHNICAL SERVICE CENTER

C14 Grant of patent or utility model
GR01 Patent grant