一种通过xml文档对office文件解析的方法技术

技术编号:29281300 阅读:21 留言:0更新日期:2021-07-16 23:19
本发明专利技术公开了一种通过xml文档对office文件解析的方法,包括以下步骤:a、将word文件名称为word.docx的扩展名修改为zip,word文件会变成压缩文件,并形成压缩文件名称word.zip;b、通过解压软件对word.zip文件进行解压,并形成多个标准的xml文件。有益效果是:通过获取XML文档读取指令,该读取指令中包括至少一个待读取行标识,根据上述至少一个待读取行标识,在XML文档中读取出上述至少一个待读取行标识对应的至少一行数据,并将这至少一行数据转换为节点树,对该节点树上的节点进行解析,获取解析结果,实现了只需要根据读取指令读取需要读取的行数据即可,而无需读取整个文档,大大降低了计算机内存的消耗,避免了内存溢出的现象。的现象。的现象。

A method of parsing office files through XML documents

【技术实现步骤摘要】
一种通过xml文档对office文件解析的方法
[0001]

[0002]本专利技术涉及语言解析
,尤其涉及一种通过xml文档对office文件解析的方法。

技术介绍

[0003]目前市场对MS OFFICE文档进行解析,有两种技术:1、COM解析:安装office办公软件,会在系统进行注册生成COM 接口,然后开发人员对COM接口进行调用,传参拿到文件的实例,对文档各个数据模块(如字体、字号、段落、图表、页眉、页脚等等)进行数据读取解析。缺点:a.由于很多OFFICE用户,安装绿色版或简化版OFFICE,COM组建没有在系统注册,导致程序无法读取文档。 b.安装其它办公软件如WPS,然后没有卸载干净,同样会导致COM无法使用的问题。2、OpenXml 解析:openxml是微软在.net framework3.5中推出的开源项目,在无需安装office的情况下,也能够对office文档数据读取解析。缺点:a.目前OpenXml开发平台仅限于.net framework 3.5以上版本;b.开发语言只能为C#; c..net framework框架有跨平台限制,不能通用于各个平台。
[0004]由于上述2种官方推出的解析方式,不能满足我们日常使用的各种场景以及各种平台调用,我们通过研究office文档结构发现,内部文件关系,以及文件类型均为xml文件,进一步测试、验证,得到可行性方案:即可以通过标准的xml文档对Office文档进行解析,解决对.net framewrok的依赖,而且还适应于目前市场主流的开发语言(C、C++、c#、JAVA、python、VB等各种语言和脚本)进行开发,主流的开发语言均支持读取解析标准的xml文件。
[0005]
技术实现思路

[0006]本专利技术的目的是提供一种通过xml文档对office文件解析的方法,只需要了解office文档结构,可以对xml文件进行关联解析,读取相应的数据,对想要的数据,只需要加载必要的关联文件进行解析即可,降低了计算机计算和内存消耗,可以达到跨语言、跨平台等特性,方便目前对office文件的终端使用。
[0007]本专利技术的技术方案是这样实现的:一种通过xml文档对office文件解析的方法,包括以下步骤:a、将word文件名称为word.docx的扩展名修改为zip,word文件会变成压缩文件,并形成压缩文件名称word.zip;b、通过解压软件对word.zip文件进行解压,并形成多个标准的xml文件;c、按照标准的xml文件方式进行解析,读取文档里面所有的内容;d、根据文档结构,建立对应模型关系,建立对应的名称空间映射,加载公共部分属性,开始读取主文档,对需要提取的数据进行文档关联遍历解析,根据office文档属性存在于
多个文件中,每个文件都有对应的id和标识进行关联,得到至少一行数据文档、图形文档。
[0008]进一步的,将所读取的所述至少一行数据进行释放。
[0009]进一步的,将所述至少一行数据转换为节点树,对所述节点树上的节点依次进行解析,并获取所述xml文档的解析结果。
[0010]进一步的,遍历所述节点树上的所有节点,依次对各所述节点进行解析,获取所述xml文档的解析结果。
[0011]本专利技术的有益效果是:(1)只需要了解office文档结构,既可以对xml文件进行关联解析,读取相应的数据,对想要的数据,只需要加载必要的关联文件进行解析即可,降低了计算机计算和内存消耗,可以达到跨语言、跨平台等特性,方便目前对office文件的终端使用。
[0012](2)根据文档结构,建立对应模型关系,建立对应的名称空间映射,加载公共部分属性,开始读取主文档,对需要提取的数据进行文档关联遍历解析,根据office文档属性存在于多个文件中,每个文件都有对应的id和标识进行关联,得到至少一行数据、图形,在xml文档中读取出标识对应的至少一行数据,并将这至少一行数据转换为节点树,对该节点树上的节点进行解析,获取解析结果,实现了只需要根据读取指令读取需要读取的行数据即可,而无需读取整个文档,大大降低了计算机内存的消耗,避免了内存溢出的现象;另外,只需要将读取的行数据转换为节点树进行解析,提高解析效率。
附图说明
[0013]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1为一种通过xml文档对office文件解析的方法的流程图。
具体实施方式
[0015]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。
[0016]根据本专利技术的实施例,提供了一种通过xml文档对office文件解析的方法。
[0017]参照图1,根据本专利技术实施例的xml文档对office文件解析的方法,包括以下步骤a、将word文件名称为word.docx的扩展名修改为zip,word文件会变成压缩文件,并形成压缩文件名称word.zip;b、通过解压软件对word.zip文件进行解压,并形成多个标准的xml文件;c、按照标准的xml文件方式进行解析,读取文档里面所有的内容;d、根据文档结构,建立对应模型关系,建立对应的名称空间映射,加载公共部分属性,开始读取主文档,对需要提取的数据进行文档关联遍历解析,根据office文档属性存在于多个文件中,每个文件都有对应的id和标识进行关联,得到至少一行数据文档、图形文档。
[0018]在一个实施例中,将所读取的所述至少一行数据进行释放。
[0019]在一个实施例中,将所述至少一行数据转换为节点树,对所述节点树上的节点依
次进行解析,并获取所述xml文档的解析结果。
[0020]在一个实施例中,遍历所述节点树上的所有节点,依次对各所述节点进行解析,获取所述xml文档的解析结果。
[0021]以上所述,仅为本专利技术较佳的具体实施方式,但本专利技术的保护范围并不局限于此,任何熟悉本
的技术人员在本专利技术揭露的技术范围内,根据本专利技术的技术方案及其专利技术构思加以等同替换或改变,都应涵盖在本专利技术的保护范围之内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通过xml文档对office文件解析的方法,其特征在于,包括以下步骤:a、读取office文件,程序对office文件进行解压缩,可以形成多个标准的xml文件;b、按照标准的xml文件方式进行解析,读取文档里面所有的内容;c、根据文档结构,建立对应模型关系,建立对应的名称空间映射,加载公共部分属性,开始读取主文档,对需要提取的数据进行文档关联遍历解析,根据office文档属性存在于多个文件中,每个文件都有对应的id和标识进行关联,得到至少一行数据文档、图形文档。2....

【专利技术属性】
技术研发人员:刘志强
申请(专利权)人:安徽佰通教育科技发展有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1