CN1949225A - Xml文件预处理方法、装置、文件结构、读取方法和装置 - Google Patents
Xml文件预处理方法、装置、文件结构、读取方法和装置 Download PDFInfo
- Publication number
- CN1949225A CN1949225A CN 200610145652 CN200610145652A CN1949225A CN 1949225 A CN1949225 A CN 1949225A CN 200610145652 CN200610145652 CN 200610145652 CN 200610145652 A CN200610145652 A CN 200610145652A CN 1949225 A CN1949225 A CN 1949225A
- Authority
- CN
- China
- Prior art keywords
- xml
- xml file
- parameter
- file
- node
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种XML预处理方法和装置,所述方法包括:在XML文件中获取指示所述XML文件中各个XML节点物理位置和大小的参数;将所述参数存储在一个预先设置的数据结构中,以及,将所述数据结构设置在所述XML文件中;在所述XML文件的预先设定的位置设置一个指向所述数据结构的指针。本发明还公开了XML文件读取方法和装置,所述方法包括:获取指示索引单元的物理位置和大小的参数;按照所述参数的指示,读取所述索引单元,获取指示各个XML节点的物理位置和大小的参数;按照所述参数的指示,读取所述XML节点。本发明还公开了一种XML文件结构。本发明可以避免读取多个XML文件时,由于存在多个索引文件和多个XML文件而不便管理的情况的发生。
Description
技术领域
本发明涉及计算机技术领域,更具体地说,涉及XML文件预处理方法、装置、XML文件结构、XML文件读取方法和装置。
背景技术
电子计算机传统的数据文件主要是以二进制的方式进行存储和读取的,这种方式的数据文件必须通过专用程序进行读写与修改,因此在数据表示、可扩展性、用户管理以及Web应用上有较大的困难。随着计算机技术的发展,Web的应用越来越广泛,由于二进制数据文件在Web层面的交互与显示的弱点,逐渐被一种新的技术所取代---XML(Extensible MarkupLanguage,可扩展标记语言)。XML是一种元标注语言,它提供一种可以广泛执行并易于配置的结构数据描述的格式,这种格式易于理解和管理,而且结构数据与数据表示是分离的,因此在应用上十分灵活,且易于扩展,能够无缝地集成众多来源的数据。如今这种技术已经应用到高级数据库搜索、网上银行、医药、法律及电子商务等多个领域,正发挥着重大的作用。
XML文件是由一系列的标记和标记内的内容数据所组成,如例1所示。
例1:
<document>
<section1>
<paragraph>----节点1
岁月蒸华发,
</paragraph>
<paragraph>----节点2
宝剑依旧亮。
</paragraph>
</section1>
<section2>
<paragraph>----节点3
热血洗沙场,
</paragraph>
<paragraph>----节点4
江河归故乡。
</paragraph>
</section2>
</document>
其中,document、section和paragraph都是用户定义的标记,节点1、2、3以及4是标记中的内容数据。在对这种XML文件内容进行读取时,需要对所述标记进行解析,有两种XML文件格式的解析技术被经常使用:DOM(Document Object Model)和SAX(Simple API for XML);DOM是基于对象的解析方式,当使用DOM时,数据以树状结构的方式被读取到内存中,这种解析方式在内存中是持久的,因此可以对其结构以及内容进行修改,可以随意跳转读取位置,如例1中,可以随意读取节点1、2、3和4中的任意节点,但是这种方式必然带来内存的开销,如只想读取节点1、2、3和4中任意节点时,需要将节点1、2、3和4全部读取进内存,当对一些大型文件进行读取时,可能会花费较长时间来建立一个DOM树,效率不高,开销较大。SAX是基于事件的解析过程,它是采用顺序的方式对XML文件进行读取,当发现XML文件的标记就触发一个Start element的事件,并对标记内的内容数据进行读取,这种处理不需要将所有内容读取进内存,但是不能随意跳转读取位置,如例1中,如果只想读取节点3,使用SAX时,需将节点1和2依次读取后,才能对接点3进行读取,效率不高,灵活性不够。
申请号为200510132306.3的中国专利公开了一种XML文件数据存取的方法,该方法包括以下步骤:判断欲存取的XML文件的索引文件是否存在,不存在先建立之;将XML文件的索引文件读入内存;根据预定义的规则在索引文件中查找标识信息,并获得标识信息的定位参数;根据所述标识信息的定位参数从XML文件中提取相应的数据对象或元素。该方法以建立索引文件的方式,实现高效迅速定位想要进行操作的数据对象或元素,加快了大型XML文件存取数据的速度。但是这种方法存在管理不便的问题,因为当对一个XML文件必须对应一个索引文件,当对多个XML文件进行读取时,由于存在多个索引文件,在文件的管理上会相对繁琐且存在隐患,在写XML内容形成XML文件后,需重新对XML进行遍历以建立索引文件时,比较麻烦。
发明内容
有鉴于此,本发明的目的在于提供一种XML文件预处理方法和装置,以及基于XML文件预处理方法的XML文件读取方法和装置,使得能够简单、高效地对大型XML文件读取,且便于文件管理。
本发明一种XML文件预处理方法是这样实现的:
一种XML文件预处理方法,包括步骤:
在XML文件中获取指示所述XML文件中各个XML节点物理位置和大小的参数;
将所述参数存储在一个预先设置的数据结构中,以及,将所述数据结构设置在所述XML文件中;
在所述XML文件的预先设定的位置设置一个指向所述数据结构的指针。
所述方法进一步包括,在所述数据结构中与所述参数位置相应的位置设置关键字字段,所述关键字字段与所述XML节点的标识信息相匹配。
将所述数据结构设置在所述XML文件中的方法具体为:将所述数据结构设置在所述XML文件的尾部。
所述方法进一步包括:所述预先设定的位置为所述XML文件的头部。
所述数据结构为字符串表。
本发明还公开了一种XML文件预处理装置,所述装置包括:
获取单元,用于在XML文件中获取指示所述XML文件中各个XML节点物理位置和大小的参数;
第一配置单元,用于将所述参数存储进一个预先设置的数据结构中,并将所述数据结构设置在所述XML文件中;
第二配置单元,用于在所述XML文件的预先设定的位置设置一个指向所述数据结构的指针。
所述装置还包括:关键字设置单元,用于在所述数据结构中与所述参数位置相应的位置设置与所述XML节点名称相匹配的关键字字段。
所述装置还包括:设置单元,用于在所述第一配置单元配置完所述数据结构之后,将所述数据结构设置在XML文件的尾部,以及,在所述第二配置单元配置完所述指针之后,将所述指针设置在所述XML文件的头部。
所述数据结构为字符串表。
本发明还进一步公开了一种XML文件结构,所述结构包括:至少一个XML节点、索引单元和指针单元;其中,
所述XML节点用于记录XML内容信息;
所述索引单元设置在所述XML文件中第一预设位置,用于保存指示各个XML节点物理位置和大小的参数;
所述指针单元设置在所述XML文件中在第二预设位置,用于保存指示所述索引单元的物理位置和大小的参数。
所述结构还包括:关键字字段单元,设置在所述索引单元与指示各个XML节点物理位置和大小的参数的位置相应的位置,用于保存与各个所述XML节点的标识信息相匹配的关键字字段。
所述第一预设位置为所述XML文件的尾部。
所述第二预设位置为所述XML文件的头部。
所述索引单元为字符串表。
本发明还更进一步公开了一种XML文件读取方法,所述方法包括步骤:
获取指示索引单元的物理位置和大小的参数;
按照所述参数的指示,读取所述索引单元,获取指示各个XML节点的物理位置和大小的参数;
按照所述参数的指示,读取所述XML节点。
获取指示XML节点的物理位置和大小的参数具体方法为:
根据预定义规则在所述索引单元中查找与所述XML节点的标识信息相应的关键字字段,获取用于指示所述XML节点的物理位置和大小的参数。
根据预定义规则在所述索引单元中查找与所述XML节点的标识信息相应的关键字字段具体过程为:采用字符串匹配的方式在所述索引单元中查找与所述XML节点的标识信息相匹配的字符串。
获取指示索引节点的物理位置和大小的参数具体方法为:
在所述XML文件的头部或者预设位置获取指示索引单元的物理位置和大小的参数。
本发明同时还公开了一种XML文件读取装置,所述装置包括:
指示单元,用于为读取单元提供索引单元和各个XML节点的物理位置和大小的参数;
读取单元,用于读取指针单元,以及,按照所述指示单元提供的参数的指示,读取所述索引单元和各个XML节点。
所述指示单元包括:第一指示单元,用于为读取单元提供指示所述索引单元物理位置和大小的参数;第二指示单元,用于为所述读取单元提供指示所述各个XML节点的物理位置和大小的参数。
通过上述技术方案可知,与现有技术相比,本发明具有以下特点和优点:
1、无需增加独立的索引文件,而是将索引节点设置于XML文件中,可以避免当读取多个XML文件时,由于存在多个索引文件和多个XML文件而不便管理的情况的发生;
2、在写入XML内容后,即可确定所述XML内容的大小和物理位置,设置索引节点,并将其放置在XML文件的末尾,并且,设置一个保存指示所述数据结构的物理位置和大小的参数的指针,将所述指针放置在XML文件头部,形成XML文件,避免了在写入XML内容形成XML文件后,还需对XML文件的内容进行遍历以生成索引文件的情况的发生,减少处理环节,提高效率。
附图说明
图1为本发明一种XML文件预处理方法的实现流程图;
图2为本发明一种XML文件预处理方法的实施例一的流程图;
图3为本发明一种XML预处理装置的结构示意图;
图4为为本发明一种XML文件预处理装置的实施例一的结构示意图;
图5为为本发明一种XML文件结构的结构图;
图6为本发明一种XML文件结构的实施例一的结构示意图;
图7为本发明一种XML文件读取方法的实现流程图;
图8为本发明一种XML文件读取方法的实施例一的流程图;
图9为本发明一种XML文件读取装置的结构示意图。
具体实施方式
本发明一种XML文件预处理方法的核心思想是:在XML文件中获取指示所述XML文件中各个XML节点物理位置和大小的参数;将所述参数存储在一个预先设置的数据结构中,以及,将所述数据结构设置在所述XML文件中;在所述XML文件的预先设定的位置设置一个指向所述数据结构的指针。
为了使本领域的技术人员能够充分理解本发明的技术方案,下面结合具体实施例和附图进行进一步的详细说明。
请参考图1,为本发明一种XML文件预处理方法的实现流程图。
首先,进入步骤S101。
步骤S101:在XML文件中获取指示所述XML文件中各个XML节点物理位置和大小的参数。
步骤S102:将所述参数存储在一个预先设置的数据结构中,以及,将所述数据结构设置在所述XML文件中。
步骤S103:在所述XML文件的预先设定的位置设置一个指向所述数据结构的指针。
所述指针包含指示所述数据结构在所述XML文件中的物理位置和大小的信息,所述预先设定的位置可以在所述XML文件中的任何位置,最好设置在文件的头部,便于在读取文件时,快捷、准确地读取所述数据结构,当然,也可以设置在距离XML文件首地址固定偏移值的位置,根据所述固定偏移值即可将所述数据结构读取。
为了在对文件内容进行读取时,进一步快速、准确地找到相应的目标内容,在所述数据结构中与所述参数位置相应的位置设置关键字字段信息,所述关键字信息与所述XML节点的标识信息相匹配。
下面通过附图2和实施例一对本发明的技术方案进行进一步的描述说明。
如图2所示,为本发明一种XML文件预处理方法的实施例一的流程图。
步骤S201:获取所述XML文件中各个XML节点的标识信息和指示各个XML节点物理位置和大小的参数。
所述标识信息一般指的是名称信息,如例1中的section1、section2;所述参数包括物理位置值和存储空间占有值,所述物理位置值指的是所述数据结构距离文件首地址的偏移值;所述存储空间占有值指的是所述数据结构的大小。
步骤S202:配置字符串表。
按照所述参数和标识信息配置字符串表,所述字符串表中包含有多个字符串,每个字符串由关键字字段、开始位置值、表示大小的数值组成,如:
<index key=″section1″start=″3″length=″8″>,其中section1表示所述XML文件中名称为“section1”的XML节点,start=″3″表示所述XML节点的开始位置距离XML文件的首地址的偏移值为3,length=″8″表示所述XML节点的大小为8。
多个字符串集合形成字符串表,如:
<indexs>---表示字符串表的表头。
<index key=″section1″start=″3″length=″8″/>
<index key=″section2″start=″11″length=″8″/>
……
</indexs>---表示字符串表的表尾。
步骤S203:将所述字符串表设置于XML文件末尾。
将所述字符串表设置在所述XML文件的末尾,主要是因为在把XML内容写入文件时,在没把XML内容输出完前不能确定XML内容到底有多少,只有到最后才能确定,而字符串表的长度是由XML内容决定的,所以字符串表的长度也要到输出文件末尾才确定,然后才把字符串表写入文件末尾,同时确定了了字符串表的位置和大小。
步骤S204:配置索引所述字符串表的指针。
按照所述字符串表的名称、物理位置以及大小等信息,设置索引所述字符串表的指针,所述指针保存与所述字符串表信息相匹配的字符串信息、用于指示所述字符串表物理位置和大小的参数。
如:<indexOfIndex start=″20″length=″2″/>
其中,indexOfIndex为索引所述字符串表indexs的指针的名称,start=″20″length=″2″表示字符串表indexs在所述XML文件中的开始位置为距离所述XML文件首地址的偏移值为20,所述字符串表indexs的大小为2。
步骤S205:将索引所述字符串表的指针设置于XML文件头部。
预先在所述XML文件的文件头预留了一个节点空间(一般为32位长的整数)放置所述指针,当在文件末尾写入所述字符串表indexs时也就是知道字符串表indexs距离所述XML文件首地址的偏移值,从而把记录所述字符串表indexs的大小和物理位置的指针写入文件头的预留位置,这样不会修改到之前写的内容的位置。
由此,形成了有索引功能的XML文件,如例2所示:
例2
<indexOfIndex start=″20″length=″2″/>---指针
<document>
<section1>------节点1
<paragraph11>
岁月蒸华发,
</paragraph11>
<paragraph12>
宝剑依旧亮。
</paragraph12>
</section1>
<section2>-----节点2
<paragraph21>
热血洗沙场,
</paragraph21>
<paragraph22>
江河归故乡。
</paragraph22>
</section2>
</document>
<indexs>---字符串表
<index key=″section1″start=″3″length=″8″/>
<index key=″section2″start=″11″length=″8″/>
</indexs>
请参考图3所示,为本发明一种XML文件预处理装置的结构示意图。
一种XML文件预处理装置100,包括:获取单元111,用于在XML文件中获取指示所述XML文件中各个XML节点物理位置和大小的参数;第一配置单元112,用于将所述参数存储进一个预先设置的数据结构中,并将所述数据结构设置在所述XML文件中;第二配置单元113,用于在所述XML文件的预先设定的位置设置一个指向所述数据结构的指针。
本预处理装置100的工作过程:
获取单元111获取指示所述XML文件中各个XML节点物理位置和大小的参数,第一配置单元112将所述参数存储进一个预先设置的数据结构中,并将所述数据结构设置在所述XML文件中;在设置所述数据结构的时候,所述数据结构在所述XML文件中的物理位置和大小也随着确定了,按照所述数据结构在所述XML文件中的物理位置和大小,所述第二配置单元113在所述XML文件的预先设定的位置设置一个指向所述数据结构的指针,所述指针存储了用于指示所述数据结构在所述XML文件中的物理位置和大小的参数。
所述参数包括物理位置值和存储空间占有值,所述物理位置值指的是所述数据结构距离文件首地址的偏移值;所述存储空间占有值指的是所述数据结构的大小。
为了在对文件内容进行读取时,进一步快速、准确地找到相应的目标内容,所述装置可以包括关键字设置单元114,用于在所述数据结构中与所述参数位置相应的位置设置关键字字段,所述关键字字段与所述XML节点的标识信息相匹配。
所述预先设置的数据结构可以是字符串表,所述字符串表中包含有多个字符串,每个字符串由关键字字段、开始位置值、表示大小的数值组成,如:
<index key=″section1″start=″3″length=″8″>,其中section1表示XML文件中名称为“section1”的XML节点,start=″3″表示所述XML节点在所述XML文件中的开始位置距离所述XML文件的首地址的偏移值为3,length=″8″表示所述XML节点的大小为8。
多个字符串集合形成字符串表,如:
<indexs>---表示字符串表的表头。
<index key=″section1″start=″3″length=″8″/>
<index key=″section2″start=″11″length=″8″/>
……
</indexs>---表示字符串表的表尾。
所述数据结构还可以是其他形式,如采用多级索引表。
当需要索引的XML节点比较多时,适合采用多级索引表,如:
在此索引表中,当需要读取paragraph1时,可以通过路径为document/section1/paragrahp1获取paragrahp1的起始位置:距离XML文件的首地址的偏移值为20,并根据所述起始位置,读取所述paragraph1。
如图4所示,为本发明一种XML文件预处理装置的实施例一的结构示意图。
所述预处理装置100还包括一个位置设置单元115,用于在所述第一配置单元112配置完所述数据结构之后,将所述数据结构设置在XML文件的尾部,以及在所述第二配置单元113配置完索引所述数据结构的指针之后,将所述指针设置在所述XML文件的头部。
将所述数据结构设置在所述XML文件的末尾,主要是因为在把XML内容写入文件时,在没把XML内容输出完前不能确定XML内容到底有多少,只有到最后才能确定,而数据结构的长度是由XML内容决定的,所以数据结构的长度也要到输出文件末尾才确定,然后才把所述数据结构写入文件末尾,同时确定了所述数据结构的位置。
预先在所述XML文件的文件头预留了一个节点空间(一般为32位长的整数)放置所述指针,当在文件末尾写入所述数据结构时也就是知道数据结构距离所述XML文件首地址的偏移值,从而把记录所述数据结构的大小和物理位置的指针写入文件头的预留位置,这样不会修改到之前写的内容的位置。
请参考图5,为本发明一种XML文件结构的结构图。
一种XML文件,由索引单元10、指针单元20以及至少一个XML节点30组成。
所述索引单元10设置在所述XML文件中第一预设位置,用于保存指示各个XML节点30的物理位置和大小的参数;所述指针单元10设置在所述XML文件中在第二预设位置,用于保存指示所述索引单元10的物理位置和大小的参数;所述XML节点用于记录XML内容信息。
所述索引单元10可以是字符串表。如:
<indexs>---表示字符串表的表头。
<index key=″section1″start=″3″length=″8″/>
<index key=″section2″start=″11″length=″8″/>
……
</indexs>---表示字符串表的表尾。
所述索引单元10还可以是其他形式,如采用多级索引表。
当需要索引的XML节点比较多时,适合采用多级索引表,如:
在此索引表中,当需要读取paragraph1时,可以通过路径为document/section1/paragrahp1获取paragrahp1的起始位置:距离XML文件的首地址的偏移值为20,并根据所述起始位置,读取所述paragraph1。
所述第一预设位置可以是XML文件的任何位置,最佳位置是在XML文件的尾部,主要是因为在把XML内容写入文件时,在没把XML内容输出完前不能确定XML内容到底有多少,只有到最后才能确定,而索引单元10的长度是由XML内容决定的,所以索引单元10的长度也要到输出文件末尾才确定,然后直接把索引单元10写入尾部,同时确定了了索引单元10的位置,比较方便。
所述第二预设位置可以是XML文件的任何位置,最佳位置是在XML文件的头部,预先在所述XML文件的文件头预留了一个节点空间(一般为32位长的整数)放置所述指针20,当在文件末尾写入所述索引单元10时也就是知道索引单元10距离所述XML文件首地址的偏移值,从而把记录所述索引单元10的大小和物理位置的指针写入文件头的预留位置,这样不会修改到之前写的内容的位置。
当然,也可以根据需要把索引单元10设置在XML文件中距离文件首地址固定偏移值的位置,此外,还可以将所述索引单元10设置在所述XML文件的头部,指针单元20设置在所述索引节点的头部,如图6所示,为本发明一种XML文件结构的实施例一的结构示意图。其中,指针单元20可以只存储指示所述索引单元10大小的参数,在对所述XML文件进行读取时,读取设置在文件头部的索引单元10的头部的指针单元20,获取指示指示所述索引单元10大小的参数,即可将所述索引单元读取。
请参考图7,为本发明一种XML文件读取方法的实现流程图。
步骤S301:获取指示索引单元的物理位置和大小的参数。
所述参数包括物理位置值和存储空间占有值,所述物理位置值指的是所述数据结构距离文件首地址的偏移值;所述存储空间占有值指的是所述数据结构的大小。
步骤S302:按照所述参数的指示,读取所述索引单元,获取指示各个XML节点的物理位置和大小的参数。
步骤S303:按照所述索引单元中的参数的指示,将所述XML节点读取进内存。
下面通过实施例对本发明一种XML文件读取方法进行进一步的描述说明。
请参考图8,为本发明一种XML文件读取方法的实施例一的流程图。
步骤S401:读取指针。
在文件的头部或距离文件首地址固定偏移的位置读取指针,获取存储其中的指示索引单元在所述XML文件中的物理位置和大小的参数。
所述指针的形式可以是:<indexOfIndexs start=″20″length=″2″/>,其中start=″20″length=″2″表示所述索引单元在所述XML文件中的起始位置为距离文件首地址的偏移值为20的位置,所述索引单元的大小为2。
步骤S402:按照所述参数的指示,读取索引单元。
步骤S403:根据预定义的规则在所述索引单元中查找与XML节点的标识信息相应的关键字字段,获取与所述关键字字段位置相应的位置上的参数。
所述预定义的规则可以为字符串匹配的规则,由于XML文件是由纯文本对数据进行描述的,而字符串匹配常常应用于纯文本的格式,因此采用字符串匹配的规则。当然,可以根据索引单元的构成方式,所述预定义规则也会随之发生改变,并不局限于字符串匹配的方式。
所述参数可以设置在关键字字段的同一行中,并且设置所述关键字字段的的相邻位置。
所述参数即是用于指示所述XML节点的物理位置和大小的信息。如<index key=″section1″start=″3″length=″8″/>表示的意思为:XML节点名称为section1,起始物理位置为距离文件首地址的偏移值为3,大小为8。
步骤S404:按照所述参数的指示,读取所述XM L节点。
如根据key=″section1″start=″3″length=″8″的信息,在距离文件首地址的偏移值为3的位值将节点大小为3的、名称为section1的节点读取。
请参考图9,为本发明一种XML文件读取装置的结构示意图。
本XML文件读取装置主要针对已经进过预处理的XML文件进行操作的。
所述预处理即是在将XML内容写入文件后,在XML文件中获取指示所述XML文件中各个XML节点物理位置和大小的参数;将所述参数存储在一个预先设置的数据结构中,以及,将所述数据结构设置在所述XML文件中;在所述XML文件的预先设定的位置设置一个指向所述数据结构的指针。
所述经过预处理的XML文件即是具有索引功能的XML文件,所述文件包括索引单元、指针单元以及至少一个XML节点。
本XML文件读取装置200包括:
指示单元211,用于为读取单元212提供索引单元和各个XML节点的物理位置和大小的参数;读取单元212,用于读取指针单元,以及,按照所述指示单元提供的参数的指示,读取所述索引单元和各个XML节点。
所述指示单元211包括:第一指示单元2111,用于为读取单元212提供指示所述索引单元物理位置和大小的参数;第二指示单元2112,用于为所述读取单元212提供所述各个XML节点的物理位置和大小。
所述参数包括物理位置值和存储空间占有值,所述物理位置值指的是所述数据结构距离文件首地址的偏移值;所述存储空间占有值指的是所述数据结构的大小。
本XML文件读取装置的工作过程:在读取单元212读取设置在文件头的指针后,第一指示单元2111辨识出指示索引单元的物理位置和大小的参数,并将所述参数提供给读取单元212,在所述读取单元212按照所述参数的指示将所述索引单元读取后,第二指示单元2112根据预定义规则在所述索引单元中辨识出指示目标XML节点的物理位置和大小的参数,并将所述参数提供给读取单元212,所述读取单元212按照所述参数的指示,将所述目标XML节点读取。
所述目标XML节点即是想要读取的某个XML节点,其可以是所述XML文件中的多个XML节点中的任意一个。
所述预定义的规则可以为字符串匹配的规则,由于XML文件是由纯文本对数据进行描述的,而字符串匹配常常应用于纯文本的格式,因此采用字符串匹配的规则。
当然,可以根据索引单元的构成方式,所述预定义规则也会随之发生改变,并不局限于字符串匹配的方式。
一个具有索引功能的XML文件如例3所示:
例3
<indexOflndex start=″20″length=″2″/>
<document>
<section1>------节点1
<paragraph11>
岁月蒸华发,
</paragraph11>
<paragraph12>
宝剑依旧亮。
</paragraph12>
</section1>
<section2>-----节点2
<paragraph21>
热血洗沙场,
</paragraph21>
<paragraph22>
江河归故乡。
</paragraph22>
</section2>
</document>
<indexs>
<index key=″section1″start=″3″length=″8″/>
<index key=″section2″start=″11″length=″8″/>
</indexs>
在读取如例3所示的XML文件时,首先,读取单元212读取设置在所述XML文件的头部信息,第一指示单元2111根据信息中的关键字字段indexOfIndex辨识出所读取的信息为一个指针,并且将所述指针中关键字段相邻的信息:start=″20″length=″2″提供给读取单元212,读取单元212按照所述信息的指示将所述索引单元读取,在确定目标XML节点为section2之后,第二指示单元2112在所述索引单元中查找与section2相匹配的关键字字段:key=″section2″,并将所述关键字字段相邻的信息start=″11″length=″8″提供给读取单元212,所述读取单元212根据所述信息将section2节点读取。
采用本技术方案无需增加独立的索引文件,而是将指示XML节点的物理位置和大小的参数存储进一个预先设置的数据结构中,并将所述数据结构设置于XML文件中,可以避免当读取多个XML文件时,由于存在多个索引文件和多个XML文件而不便管理的情况的发生。
另外,在写入XML内容后,即可确定所述XML内容的大小和物理位置,设置指示物理位置和大小的参数,并将所述参数存储在一个预设的数据结构中后,将其放置在XML文件的末尾,并且,设置一个保存指示所述数据结构的物理位置和大小的参数的指针,将所述指针放置在XML文件头部,形成XML文件,避免了在写入XML内容形成XML文件后,还需对XML文件的内容进行遍历以生成索引文件的情况的发生,减少中间处理环节,提高效率。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
Claims (16)
1、一种XML文件预处理方法,其特征在于,包括步骤:
在XML文件中获取指示所述XML文件中各个XML节点物理位置和大小的参数;
将所述参数存储在一个预先设置的数据结构中,以及,将所述数据结构设置在所述XML文件中;
在所述XML文件的预先设定的位置设置一个指向所述数据结构的指针。
2、如权利要求1所述的XML文件预处理方法,其特征在于,进一步包括,在所述数据结构中与所述参数位置相应的位置设置关键字字段,所述关键字字段与所述XML节点的标识信息相匹配。
3、如权利要求1所述的XML文件预处理方法,其特征在于,将所述数据结构设置在所述XML文件中的方法具体为:将所述数据结构设置在所述XML文件的尾部。
4、如权利要求1所述的XML文件预处理方法,其特征在于,所述预先设定的位置为所述XML文件的头部;所述数据结构为字符串表。
5、一种XML文件预处理装置,其特征在于,所述装置包括:
获取单元,用于在XML文件中获取指示所述XML文件中各个XML节点物理位置和大小的参数;
第一配置单元,用于将所述参数存储进一个预先设置的数据结构中,并将所述数据结构设置在所述XML文件中;
第二配置单元,用于在所述XML文件的预先设定的位置设置一个指向所述数据结构的指针。
6、如权利要求5所述的XML文件预处理装置,其特征在于,所述装置还包括:关键字设置单元,用于在所述数据结构中与所述参数位置相应的位置设置与所述XML节点名称相匹配的关键字字段。
7、如权利要求5所述的XML文件预处理装置,其特征在于,所述装置还包括:设置单元,用于在所述第一配置单元配置完所述数据结构之后,将所述数据结构设置在XML文件的尾部,以及,在所述第二配置单元配置完所述指针之后,将所述指针设置在所述XML文件的头部。
8、一种XML文件结构,其特征在于,包括:至少一个XML节点、索引单元和指针单元;其中,
所述XML节点用于记录XML内容信息;
所述索引单元设置在所述XML文件中第一预设位置,用于保存指示各个XML节点物理位置和大小的参数;
所述指针单元设置在所述XML文件中在第二预设位置,用于保存指示所述索引单元的物理位置和大小的参数。
9、如权利要求8所述的XML文件结构,其特征在于,还包括:关键字字段单元,设置在所述索引单元与指示各个XML节点物理位置和大小的参数的位置相应的位置,用于保存与各个所述XML节点的标识信息相匹配的关键字字段。
10、如权利要求8所述的XML文件结构,其特征在于,所述第一预设位置为所述XML文件的尾部;所述第二预设位置为所述XML文件的头部;所述索引单元为字符串表。
11、一种XML文件读取方法,其特征在于,包括步骤:
获取指示索引单元的物理位置和大小的参数;
按照所述参数的指示,读取所述索引单元,获取指示各个XML节点的物理位置和大小的参数;
按照所述参数的指示,读取所述XML节点。
12、如权利要求11所述的XML文件读取方法,其特征在于,获取指示XML节点的物理位置和大小的参数具体方法为:根据预定义规则在所述索引单元中查找与所述XML节点的标识信息相应的关键字字段,获取用于指示所述XML节点的物理位置和大小的参数。
13、如权利要求11所述的XML文件读取方法,其特征在于,根据预定义规则在所述索引单元中查找与所述XML节点的标识信息相应的关键字字段具体过程为:采用字符串匹配的方式在所述索引单元中查找与所述XML节点的标识信息相匹配的字符串。
14、如权利要求11所述的XML文件读取方法,其特征在于,获取指示索引节点的物理位置和大小的参数具体方法为:在所述XML文件的头部或者预设位置获取指示索引单元的物理位置和大小的参数。
15、一种XML文件读取装置,其特征在于,包括:
指示单元,用于为读取单元提供索引单元和各个XML节点的物理位置和大小的参数;
读取单元,用于读取指针单元,以及,按照所述指示单元提供的参数的指示,读取所述索引单元和各个XML节点。
16、如权利要求15所述的XML文件读取装置,其特征在于,所述指示单元包括:第一指示单元,用于为读取单元提供指示所述索引单元物理位置和大小的参数;第二指示单元,用于为所述读取单元提供指示所述各个XML节点的物理位置和大小的参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200610145652XA CN100462973C (zh) | 2006-11-23 | 2006-11-23 | Xml文件预处理方法、装置、读取方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200610145652XA CN100462973C (zh) | 2006-11-23 | 2006-11-23 | Xml文件预处理方法、装置、读取方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1949225A true CN1949225A (zh) | 2007-04-18 |
CN100462973C CN100462973C (zh) | 2009-02-18 |
Family
ID=38018740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200610145652XA Active CN100462973C (zh) | 2006-11-23 | 2006-11-23 | Xml文件预处理方法、装置、读取方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100462973C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100557611C (zh) * | 2007-11-15 | 2009-11-04 | 深圳华为通信技术有限公司 | 一种文件的处理方法和装置 |
CN101996251A (zh) * | 2010-11-17 | 2011-03-30 | 浙江省电力试验研究院 | 一种大型scl文件的快速处理方法 |
CN101661481B (zh) * | 2008-08-29 | 2012-09-26 | 国际商业机器公司 | 存储xml数据的方法、执行xml查询的方法及其装置 |
CN104036026A (zh) * | 2014-06-27 | 2014-09-10 | 吴涛军 | 存储和定位结构化文档选取内容的方法与*** |
CN107885492A (zh) * | 2017-11-14 | 2018-04-06 | 中国银行股份有限公司 | 主机中数据结构动态生成的方法及装置 |
CN113505269A (zh) * | 2021-07-02 | 2021-10-15 | 卡斯柯信号(成都)有限公司 | 基于xml的二进制文件检测方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089382B2 (en) * | 2000-10-13 | 2006-08-08 | Xpriori, Llc | Method of operating a hierarchical data document system having a duplicate tree structure |
JP3709890B2 (ja) * | 2000-10-25 | 2005-10-26 | 松下電器産業株式会社 | 文字列検索装置 |
CN100397397C (zh) * | 2005-10-31 | 2008-06-25 | 北京神舟航天软件技术有限公司 | 基于关系数据库的xml数据存储与访问方法 |
CN1790335A (zh) * | 2005-12-19 | 2006-06-21 | 无锡永中科技有限公司 | Xml文件数据存取的方法 |
CN1831828A (zh) * | 2006-04-10 | 2006-09-13 | 无锡永中科技有限公司 | 保存xml文档的方法 |
-
2006
- 2006-11-23 CN CNB200610145652XA patent/CN100462973C/zh active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100557611C (zh) * | 2007-11-15 | 2009-11-04 | 深圳华为通信技术有限公司 | 一种文件的处理方法和装置 |
CN101661481B (zh) * | 2008-08-29 | 2012-09-26 | 国际商业机器公司 | 存储xml数据的方法、执行xml查询的方法及其装置 |
CN101996251A (zh) * | 2010-11-17 | 2011-03-30 | 浙江省电力试验研究院 | 一种大型scl文件的快速处理方法 |
CN101996251B (zh) * | 2010-11-17 | 2012-09-05 | 浙江省电力试验研究院 | 一种大型变电站通信配置描述语言scl文件的快速处理方法 |
CN104036026A (zh) * | 2014-06-27 | 2014-09-10 | 吴涛军 | 存储和定位结构化文档选取内容的方法与*** |
CN107885492A (zh) * | 2017-11-14 | 2018-04-06 | 中国银行股份有限公司 | 主机中数据结构动态生成的方法及装置 |
CN113505269A (zh) * | 2021-07-02 | 2021-10-15 | 卡斯柯信号(成都)有限公司 | 基于xml的二进制文件检测方法和装置 |
CN113505269B (zh) * | 2021-07-02 | 2024-03-29 | 卡斯柯信号(成都)有限公司 | 基于xml的二进制文件检测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100462973C (zh) | 2009-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1158627C (zh) | 用于字符识别的方法和装置 | |
CN1193292C (zh) | 数据处理方法与装置 | |
CN1260665C (zh) | 用于管理可换存储媒体的设备和方法 | |
CN101048773A (zh) | 文件分析***、以及文件适应*** | |
CN1174332C (zh) | 转换表达方式的方法和装置 | |
CN1133127C (zh) | 文件检索*** | |
CN1215433C (zh) | 联机文字识别装置及方法 | |
CN101069181A (zh) | 存储设备和记录介质 | |
CN1171162C (zh) | 基于字符分类检索字符串的装置和方法 | |
CN1209725C (zh) | 文件编辑处理方法和文件编辑处理设备 | |
CN1949225A (zh) | Xml文件预处理方法、装置、文件结构、读取方法和装置 | |
CN1858786A (zh) | 一种电子文档格式化批注***与方法 | |
CN1276359C (zh) | 用于检查和操作数据的存储器引擎 | |
CN1805049A (zh) | 一种嵌入式***中非易失性存储器的数据存取方法 | |
CN101034414A (zh) | 信息处理设备和方法以及程序 | |
CN101080927A (zh) | 内容推荐装置 | |
CN101065725A (zh) | 命令供给装置 | |
CN1156779C (zh) | 文献检索的方法和装置 | |
CN1862511A (zh) | 一种软件单元的测试方法 | |
CN1647069A (zh) | 对话控制***和对话控制方法 | |
CN101055566A (zh) | 一种电子数据表的函数收集方法和装置 | |
CN1690956A (zh) | 程序制定装置以及程序制定方法 | |
CN1507187A (zh) | 信息处理装置、信息处理方法、记录介质和程序 | |
CN1466083A (zh) | 关键词提取装置和信息检索装置 | |
CN101055568A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |