CN1790335A - Xml文件数据存取的方法 - Google Patents
Xml文件数据存取的方法 Download PDFInfo
- Publication number
- CN1790335A CN1790335A CNA2005101323063A CN200510132306A CN1790335A CN 1790335 A CN1790335 A CN 1790335A CN A2005101323063 A CNA2005101323063 A CN A2005101323063A CN 200510132306 A CN200510132306 A CN 200510132306A CN 1790335 A CN1790335 A CN 1790335A
- Authority
- CN
- China
- Prior art keywords
- file
- index
- identification information
- xml
- information
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种XML文件数据存取的方法,其包括以下步骤:判断欲存取的XML文件的索引文件是否存在,不存在先建立之;将XML文件的索引文件读入内存;根据预定义的规则在索引文件中查找标识信息,并获得标识信息的定位参数;根据所述标识信息的定位参数从XML文件中提取相应的数据对象或元素。本发明通过建立索引文件的方式,可以高效迅速定位想要进行操作的数据对象或元素,从而加快了大型XML文件存取数据的速度,使用户的操作感更佳。
Description
技术领域
本发明涉及一种XML文件数据存取的方法,尤其是指一种通过建立XML文件的索引文件对XML文件高效快速的数据存取的方法。
背景技术
电子计算机传统的数据文件主要是以二进制的方式进行存储与读取的。这种二进制方式的数据文件必须通过专用程序进行读写与修改,因此在数据表示、可扩展性、用户管理以及Web应用上有较大的困难。随着计算机技术的发展,Web的应用越来越广泛,由于二进制数据文件在Web层面的交互与显示的弱点,因此逐渐被一种新的技术所取代——XML(eXtensible MarkupLanguage,可扩展标记语言)。XML是一种元标注语言,它提供一种可以广泛执行并易于配置的结构数据描述的格式,这种格式易于理解和管理,而且结构数据与数据表示是分离的,因此在应用上十分灵活,且易于扩展,能够无缝的集成众多来源的数据。如今这种XML技术已经应用到高级数据库搜索、网上银行、医药、法律及电子商务等多个领域,正在发挥着更大的作用。
XML文件是由一系列的标记及标记内的内容数据所组成的,举例来讲,下面就是一个XML文件:
<document>
<section>
<paragraph>
月落乌啼霜满天,
</paragraph>
<paragraph>
江枫渔火对愁眠,
</paragraph>
</section>
<section>
<paragraph>
姑苏城外寒山寺,
</paragraph>
<paragraph>
夜半钟声到客船。
</paragraph>
</section>
</document>
其中,document、section、paragraph都是用户定义的标记,古诗是标记中的内容数据。从字面上看很容易理解这个文件的含义,而且根据这些标记用户可以轻易的进行显示或处理。在处理这种XML文件时,需要对这些标记顺序进行解析后再存取,现有的XML文件格式的解析技术主要有两种:SAX(Simple API for XML)和DOM(Document Object Model)。SAX是基于事件的解析过程,它是采用顺序的方式对XML文件进行读取,当发现XML文件的标记就触发一个Start element的事件,并对标记内的内容数据进行读取,这种处理的优点类似于流媒体,它可在不需要将整个XML文件进行解析的情况下就进行分析,在分析数据的过程中只需将少量数据存储到内存中进行处理,而且能够在任何时候停止解析;但由于SAX采用的是顺序的方式,而且只在内存中保存少量数据,因此如果要快速存取XML文件中的数据操作会较繁琐。例如上述例中,如果要存取第三个段落节点的文字时,需要依次解读完前两个段落节点后才能进行。DOM是基于对象的解析方式,当使用DOM时,数据以树状结构的方式被加载到内存中,这种解析方式在内存中是持久的,因此可以对其结构以及内容数据进行修改,但这种方式必然带来内存的巨大开销,尤其是一些大型文件,可能会花费较长的时间来建立一棵DOM树。例如上述例中,如果要存取第三个段落节点的文字时,第一、二、四个段落节点的文字都会被解析装载进来。
这两种解析方式都是建立在顺序读写文件的基础上,对于某些以XML格式存储数据但又需要随机存取这些数据的应用场合,特别是在文件数据容量很大的情况下,难以有效率的获取需求的数据。
发明内容
本发明的目的是提供一种XML文件数据存取的方法,尤其是指一种通过建立XML文件的索引文件对XML文件指定位置数据高效快速的存取的方法。
为实现上述目的,本发明提供了一种XML文件数据存取的方法,其包括以下步骤:
步骤1、将XML文件的索引文件读入内存;
步骤2、根据预定义的规则在索引文件中查找标识信息,并获得标识信息的定位参数;
步骤3、根据所述标识信息的定位参数从XML文件中提取相应的数据对象或元素。
根据上述技术方案,本发明通过建立索引文件的方式,可以高效迅速定位想要进行操作的数据对象或元素,从而加快了大型XML文件的解析速度,使用户的操作感更佳。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明XML文件数据存取的方法的基本技术方案的流程示意图。
图2为本发明XML文件数据存取的方法的一个具体实施例的流程示意图。
具体实施方式
如图1所示,为本发明XML文件数据存取的基本技术方案的流程示意图,其步骤如下:
步骤101、将一个XML文件的索引文件导入内存;
步骤102、根据预定义的规则在索引文件中查找标识信息,并获得标识信息的定位参数;
步骤103、根据所述标识信息的定位参数从XML文件中提取相应的数据对象。
在步骤102中,预定义的规则可为字符串匹配的规则,由于XML文件是由纯文本对数据进行描述的,而字符串匹配常常应用于纯文本的格式,因此采用字符串匹配的规则。但根据索引文件的构成方式,采用的预定义规则也会随之变化,并不局限于字符串匹配的方式。
为了对数据对象准确的定位,步骤102中的标识信息由数据对象所在的节点的路径表示,对于具有相同路径表示的不同节点,在表示中可以加入路径各级的编号,该路径或者路径编号与数据对象或数据元素相对应。在索引文件中还包含了数据对象的定位信息,这种定位信息与标识属性值相对应,一般采用的是自头结点地址开始计算的偏移量,即数据对象相对于文件首地址的偏移位址。
如图2所示,为本发明XML文件数据存取的一个具体实施例的流程示意图,以一个XML文件为例,该XML文件内容为:
<document>
<section>
<paragraph>
月落乌啼霜满天,
</paragraph>
<paragraph>
江枫渔火对愁眠,
</paragraph>
</section>
<section>
<paragraph>
姑苏城外寒山寺,
</paragraph>
<paragraph>
夜半钟声到客船。
</paragraph>
</section>
</document>
对应该XML文件中生成的索引文件内容为:
document/section.1 10
document/section.1/paragraph.1 20
document/section.1/paragraph.2 58
document/section.2 107
document/section.2/paragraph.1 117
document/section.2/paragraph.2 155
执行以下步骤:
步骤201、打开该XML文件,将该XML文件载入到内存中;
步骤202、检查该XML文件是否已建有索引文件,如果已建有则执行步骤204;如果未建,则执行步骤203;
步骤203、建立该XML文件的索引文件,这种索引文件中可以只包含主索引表,也可以包括多种形式的索引副表;
步骤204、将建好的索引文件导入内存中;
步骤205、根据预定义的规则在索引文件中查找作为标识信息的数据对象路径信息,并获得对应的数据对象的位址,这种预定义的规则可以为字符串查找的规则;
步骤206、根据所检索到的位址,定位到XML文件中提取相应的数据对象或元素;
步骤207、对提取出的数据对象或元素再进行解析转换操作,包括读取、插入、删除或修改等对数据的操作;
步骤208、判断是否对数据对象或元素进行了修改并需要更新索引文件,如果是,则执行步骤209,否则结束操作;
步骤209、重新生成索引文件。
上述实施例的步骤203中,建立的索引文件中包含一个单级主索引表,此表中包含每个数据对象的路径信息,及与之相对应的数据对象或元素所距离首地址的偏移值,即位址。除了上述这种按照标识属性值物理顺序建立索引表的方式之外,还可以根据实际需要而采取其他建立方式,如静态索引结构的多级索引表或动态索引结构的B+树等。例如可根据所建立的索引表的查找速度需要或是数据对象结构上的组织关系需要而采取多级索引的方式,其中标识属性值可以为定长,也可以为变长。以上述例子为例建立索引文件结构示意如下:
document 0
section.1 10
丨 paragraph.1 20
丨 paragraph.2 58
section.2 107
paragraph.1 117
paragraph.2 155
在此索引文件中查找路径为document/section.2/paragraph.1的数据对象位置时,可先根据路径中表示section的信息在第一级索引中找到section.2项,再从此项第二级索引中找到paragraph.1的起始位置为117.
为了更好的操作数据对象或数据元素,本实施例的步骤203中的索引文件中可以建立多种形式的索引副表,并就这些主索引表与索引副表的结构以一定的形式排列。例如,包含索引副表的索引文件的内容如下:
//Node Indexes Table
document/section.1 10
document/section.1/paragraph.1 20
document/section.1/paragraph.2 58
document/section.2 107
document/section.2/paragraph.1 117
document/section.2/paragraph.2 155
//Style Indexes Table
Normal documnt/section.1/paragraph.2,
document/section.2/paragraph.2
Headingl document/section.1/paragraph.1,
document/section.2/paragraph.1
针对于这种带有索引副表的索引文件,在作一些特定操作的时候可以加快速度,例如将Normal风格(style)的段落更改为Headingl风格,可以通过风格副表部分利用预先设定好的规则对相应的标识属性值进行查找,再根据对应的定位信息提取XML文件中的数据并进行更改的操作,更改完毕后修改风格副表相关部分。
以上所示各例中,数据对象的路径信息都是以完整字串表达的方式列出的,在实际应用中,为避免索引文件本身过于庞大,可以各种方式简化路径的表达方式,例如可以省去表示节点名称的section、paragraph等,仅以节点在其父节点中的编号来表示。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (11)
1、一种XML文件数据存取的方法,其包括以下步骤:
步骤1、将XML文件的索引文件读入内存;
步骤2、根据预定义的规则在索引文件中查找标识信息,并获得标识信息的定位参数;
步骤3、根据所述标识信息的定位参数从XML文件中提取相应的数据对象或元素。
2、根据权利要求1所述的方法,其中所述步骤1之前还包括以下步骤:
判断所述XML文件是否建立了索引文件,是则执行步骤1;否则建立索引文件,并执行步骤1。
3、根据权利要求1所述的方法,其中所述步骤1中索引文件包括:每个数据对象或元素的标识信息及记录该标识信息相应的定位参数。
4、根据权利要求1所述的方法,其中所述步骤2具体为,采用字符串匹配的方式在索引文件中查找与标识信息匹配的字符串,并获得对应于该字符串的定位参数。
5、根据权利要求1所述的方法,其中所述步骤2中的所述标识信息为数据对象或元素所在的节点的路径信息。
6、根据权利要求1所述的方法,其中所述步骤2中的所述定位参数为所述标识信息的对应的数据对象或元素距离首地址的偏移值。
7、根据权利要求3所述的方法,其中所述索引文件还包括根据所述标识信息与定位参数建立的索引结构信息。
8、根据权利要求7所述的方法,其中所述索引结构信息为静态索引结构信息或动态索引结构信息。
9、根据权利要求8所述的方法,其中所述静态索引结构信息为多级索引表。
10、根据权利要求8所述的方法,其中所述动态索引结构信息为B+树。
11、根据权利要求1所述的方法,其中所述步骤3之后,还包括以下步骤:
判断所述数据对象是否被更改以及是否需要更新索引文件,是则更新索引文件;否则结束。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2005101323063A CN1790335A (zh) | 2005-12-19 | 2005-12-19 | Xml文件数据存取的方法 |
EP06828398A EP1973044A1 (en) | 2005-12-19 | 2006-12-19 | Method for accessing the data in xml file |
US12/158,288 US20090006340A1 (en) | 2005-12-19 | 2006-12-19 | Method for Accessing Data in an Xml File |
JP2008546080A JP2009520284A (ja) | 2005-12-19 | 2006-12-19 | Xmlファイルデータのアクセス方法 |
PCT/CN2006/003490 WO2007071181A1 (fr) | 2005-12-19 | 2006-12-19 | Procede d'acces de donnees dans un fichier xml |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2005101323063A CN1790335A (zh) | 2005-12-19 | 2005-12-19 | Xml文件数据存取的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1790335A true CN1790335A (zh) | 2006-06-21 |
Family
ID=36788187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005101323063A Pending CN1790335A (zh) | 2005-12-19 | 2005-12-19 | Xml文件数据存取的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090006340A1 (zh) |
EP (1) | EP1973044A1 (zh) |
JP (1) | JP2009520284A (zh) |
CN (1) | CN1790335A (zh) |
WO (1) | WO2007071181A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100462973C (zh) * | 2006-11-23 | 2009-02-18 | 金蝶软件(中国)有限公司 | Xml文件预处理方法、装置、读取方法和装置 |
CN101996251A (zh) * | 2010-11-17 | 2011-03-30 | 浙江省电力试验研究院 | 一种大型scl文件的快速处理方法 |
CN101226534B (zh) * | 2007-12-29 | 2011-08-10 | 华为终端有限公司 | 一种查找关联文件的方法、终端和系统 |
CN102253992A (zh) * | 2011-07-06 | 2011-11-23 | 广东威创视讯科技股份有限公司 | 一种基于面向对象的文件差异比较方法及其系统 |
CN101458709B (zh) * | 2008-12-19 | 2012-01-25 | 中国运载火箭技术研究院 | 复杂产品试验数据追溯方法 |
CN102567545A (zh) * | 2012-01-16 | 2012-07-11 | 上海方正数字出版技术有限公司 | Xml数据库系统的xml文档组织管理方法及系统 |
CN104537084A (zh) * | 2013-12-31 | 2015-04-22 | 上海可鲁系统软件有限公司 | 一种xml文本定位方法 |
CN107346345A (zh) * | 2017-05-26 | 2017-11-14 | 虹光精密工业股份有限公司 | 在计算机系统搜寻影像文件的方法、影像文件搜寻装置以及计算机系统 |
CN111258956A (zh) * | 2019-03-22 | 2020-06-09 | 深圳市远行科技股份有限公司 | 一种面向远端海量数据文件预读的方法及设备 |
CN116954745A (zh) * | 2023-05-25 | 2023-10-27 | 成都融见软件科技有限公司 | 一种目标文件部分加载系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986311B (zh) * | 2010-11-17 | 2012-07-04 | 浙江省电力试验研究院 | 一种快速处理大型xml文件时节点元素的缓存方法 |
EP3598319B1 (en) | 2011-01-04 | 2024-11-06 | Climate LLC | Methods for generating soil maps and application prescriptions |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6782380B1 (en) * | 2000-04-14 | 2004-08-24 | David Victor Thede | Method and system for indexing and searching contents of extensible mark-up language (XML) documents |
US6928432B2 (en) * | 2000-04-24 | 2005-08-09 | The Board Of Trustees Of The Leland Stanford Junior University | System and method for indexing electronic text |
US6584468B1 (en) * | 2000-09-29 | 2003-06-24 | Ninesigma, Inc. | Method and apparatus to retrieve information from a network |
US6963930B2 (en) * | 2001-02-15 | 2005-11-08 | Centric Software, Inc. | Automatic transfer and expansion of application-specific data for display at a website |
US7788080B2 (en) * | 2001-11-19 | 2010-08-31 | Ricoh Company, Ltd. | Paper interface for simulation environments |
KR100484138B1 (ko) * | 2002-05-08 | 2005-04-18 | 삼성전자주식회사 | 관계형 데이터베이스에서 정규 경로식 질의를 처리하는xml 인덱싱 방법과 자료구조 |
US7493253B1 (en) * | 2002-07-12 | 2009-02-17 | Language And Computing, Inc. | Conceptual world representation natural language understanding system and method |
US7302383B2 (en) * | 2002-09-12 | 2007-11-27 | Luis Calixto Valles | Apparatus and methods for developing conversational applications |
US7289973B2 (en) * | 2002-12-19 | 2007-10-30 | Mathon Systems, Inc. | Graphical user interface for system and method for managing content |
US7757162B2 (en) * | 2003-03-31 | 2010-07-13 | Ricoh Co. Ltd. | Document collection manipulation |
WO2005101246A1 (en) * | 2004-04-09 | 2005-10-27 | Oracle International Corporation | Index for accessing xml data |
US7487448B2 (en) * | 2004-04-30 | 2009-02-03 | Microsoft Corporation | Document mark up methods and systems |
US7359902B2 (en) * | 2004-04-30 | 2008-04-15 | Microsoft Corporation | Method and apparatus for maintaining relationships between parts in a package |
-
2005
- 2005-12-19 CN CNA2005101323063A patent/CN1790335A/zh active Pending
-
2006
- 2006-12-19 EP EP06828398A patent/EP1973044A1/en not_active Withdrawn
- 2006-12-19 JP JP2008546080A patent/JP2009520284A/ja active Pending
- 2006-12-19 US US12/158,288 patent/US20090006340A1/en not_active Abandoned
- 2006-12-19 WO PCT/CN2006/003490 patent/WO2007071181A1/zh active Application Filing
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100462973C (zh) * | 2006-11-23 | 2009-02-18 | 金蝶软件(中国)有限公司 | Xml文件预处理方法、装置、读取方法和装置 |
CN101226534B (zh) * | 2007-12-29 | 2011-08-10 | 华为终端有限公司 | 一种查找关联文件的方法、终端和系统 |
CN101458709B (zh) * | 2008-12-19 | 2012-01-25 | 中国运载火箭技术研究院 | 复杂产品试验数据追溯方法 |
CN101996251B (zh) * | 2010-11-17 | 2012-09-05 | 浙江省电力试验研究院 | 一种大型变电站通信配置描述语言scl文件的快速处理方法 |
CN101996251A (zh) * | 2010-11-17 | 2011-03-30 | 浙江省电力试验研究院 | 一种大型scl文件的快速处理方法 |
CN102253992A (zh) * | 2011-07-06 | 2011-11-23 | 广东威创视讯科技股份有限公司 | 一种基于面向对象的文件差异比较方法及其系统 |
CN102253992B (zh) * | 2011-07-06 | 2013-01-23 | 广东威创视讯科技股份有限公司 | 一种基于面向对象的文件差异比较方法及其系统 |
CN102567545A (zh) * | 2012-01-16 | 2012-07-11 | 上海方正数字出版技术有限公司 | Xml数据库系统的xml文档组织管理方法及系统 |
CN104537084A (zh) * | 2013-12-31 | 2015-04-22 | 上海可鲁系统软件有限公司 | 一种xml文本定位方法 |
CN107346345A (zh) * | 2017-05-26 | 2017-11-14 | 虹光精密工业股份有限公司 | 在计算机系统搜寻影像文件的方法、影像文件搜寻装置以及计算机系统 |
US10896220B2 (en) | 2017-05-26 | 2021-01-19 | Avision Inc. | Method of searching an image file in a computer system, related image file searching device, and related computer system |
CN111258956A (zh) * | 2019-03-22 | 2020-06-09 | 深圳市远行科技股份有限公司 | 一种面向远端海量数据文件预读的方法及设备 |
CN111258956B (zh) * | 2019-03-22 | 2023-11-24 | 深圳市远行科技股份有限公司 | 一种面向远端海量数据文件预读的方法及设备 |
CN116954745A (zh) * | 2023-05-25 | 2023-10-27 | 成都融见软件科技有限公司 | 一种目标文件部分加载系统 |
CN116954745B (zh) * | 2023-05-25 | 2024-02-09 | 成都融见软件科技有限公司 | 一种目标文件部分加载系统 |
Also Published As
Publication number | Publication date |
---|---|
EP1973044A1 (en) | 2008-09-24 |
WO2007071181A1 (fr) | 2007-06-28 |
JP2009520284A (ja) | 2009-05-21 |
US20090006340A1 (en) | 2009-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1230771C (zh) | 处理正则路径表达式查询的扩展标记语言索引方法 | |
DK200600988A (da) | Integration af dokumenter med OLAP ved brug af sögning | |
CN1867911A (zh) | 便于对象系统之间文件属性管理的升级和降级技术 | |
CN1790335A (zh) | Xml文件数据存取的方法 | |
CN101145157B (zh) | 一种xml格式嵌入式设备特征信息解析方法 | |
CN1203433C (zh) | 嵌入式系统的数据存放及其查找组合方法 | |
CN1492362A (zh) | 一种嵌入式数据库的数据备份和恢复方法 | |
CN113901280B (zh) | 一种集成电路展平式设计的字符串存储与查询系统及方法 | |
CN1687926A (zh) | 一种基于xml的pdf文档信息抽取系统的方法 | |
CN104252484A (zh) | 一种拼音纠错方法及系统 | |
CN1661593A (zh) | 一种计算机语言翻译方法及其翻译系统 | |
CN1908935A (zh) | 一种自然语言的搜索方法及系统 | |
CN1828607A (zh) | 用于树型结构文件的数据查找方法 | |
CN1955958A (zh) | 一种基于目录树的分类数据存储及分类目录查询方法 | |
US20130159315A1 (en) | Methods for prefix indexing | |
CN1889080A (zh) | 一种用于检索字符串的方法 | |
CN1898644A (zh) | 有效的小占用xml分析 | |
CN1260546A (zh) | 在手持装置中存储和检索数据的方法及装置 | |
CN1811759A (zh) | 一种对信息建增量索引的方法 | |
CN1243431C (zh) | 宽带网络通信产品的通用路由平台命令行的解析方法 | |
CN104572876A (zh) | 一种软件对应配置文件的读取方法和装置 | |
CN103020075A (zh) | 分析目标对象的依赖关系的方法 | |
CN104699664A (zh) | 一种模板独立的排版系统及方法 | |
CN1825306A (zh) | 基于关系数据库的xml数据存储与访问方法 | |
CN1619495A (zh) | 跨平台的用户界面开发方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20060621 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |