一种通过xml文档对office文件解析的方法
1.技术领域
2.本发明涉及语言解析技术领域,尤其涉及一种通过xml文档对office文件解析的方法。
背景技术:3.目前市场对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框架有跨平台限制,不能通用于各个平台。
4.由于上述2种官方推出的解析方式,不能满足我们日常使用的各种场景以及各种平台调用,我们通过研究office文档结构发现,内部文件关系,以及文件类型均为xml文件,进一步测试、验证,得到可行性方案:即可以通过标准的xml文档对office文档进行解析,解决对.net framewrok的依赖,而且还适应于目前市场主流的开发语言(c、c++、c#、java、python、vb等各种语言和脚本)进行开发,主流的开发语言均支持读取解析标准的xml文件。
5.
技术实现要素:6.本发明的目的是提供一种通过xml文档对office文件解析的方法,只需要了解office文档结构,可以对xml文件进行关联解析,读取相应的数据,对想要的数据,只需要加载必要的关联文件进行解析即可,降低了计算机计算和内存消耗,可以达到跨语言、跨平台等特性,方便目前对office文件的终端使用。
7.本发明的技术方案是这样实现的:一种通过xml文档对office文件解析的方法,包括以下步骤:a、将word文件名称为word.docx的扩展名修改为zip,word文件会变成压缩文件,并形成压缩文件名称word.zip;b、通过解压软件对word.zip文件进行解压,并形成多个标准的xml文件;c、按照标准的xml文件方式进行解析,读取文档里面所有的内容;d、根据文档结构,建立对应模型关系,建立对应的名称空间映射,加载公共部分属性,开始读取主文档,对需要提取的数据进行文档关联遍历解析,根据office文档属性存在于
多个文件中,每个文件都有对应的id和标识进行关联,得到至少一行数据文档、图形文档。
8.进一步的,将所读取的所述至少一行数据进行释放。
9.进一步的,将所述至少一行数据转换为节点树,对所述节点树上的节点依次进行解析,并获取所述xml文档的解析结果。
10.进一步的,遍历所述节点树上的所有节点,依次对各所述节点进行解析,获取所述xml文档的解析结果。
11.本发明的有益效果是:(1)只需要了解office文档结构,既可以对xml文件进行关联解析,读取相应的数据,对想要的数据,只需要加载必要的关联文件进行解析即可,降低了计算机计算和内存消耗,可以达到跨语言、跨平台等特性,方便目前对office文件的终端使用。
12.(2)根据文档结构,建立对应模型关系,建立对应的名称空间映射,加载公共部分属性,开始读取主文档,对需要提取的数据进行文档关联遍历解析,根据office文档属性存在于多个文件中,每个文件都有对应的id和标识进行关联,得到至少一行数据、图形,在xml文档中读取出标识对应的至少一行数据,并将这至少一行数据转换为节点树,对该节点树上的节点进行解析,获取解析结果,实现了只需要根据读取指令读取需要读取的行数据即可,而无需读取整个文档,大大降低了计算机内存的消耗,避免了内存溢出的现象;另外,只需要将读取的行数据转换为节点树进行解析,提高解析效率。
附图说明
13.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1为一种通过xml文档对office文件解析的方法的流程图。
具体实施方式
15.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
16.根据本发明的实施例,提供了一种通过xml文档对office文件解析的方法。
17.参照图1,根据本发明实施例的xml文档对office文件解析的方法,包括以下步骤a、将word文件名称为word.docx的扩展名修改为zip,word文件会变成压缩文件,并形成压缩文件名称word.zip;b、通过解压软件对word.zip文件进行解压,并形成多个标准的xml文件;c、按照标准的xml文件方式进行解析,读取文档里面所有的内容;d、根据文档结构,建立对应模型关系,建立对应的名称空间映射,加载公共部分属性,开始读取主文档,对需要提取的数据进行文档关联遍历解析,根据office文档属性存在于多个文件中,每个文件都有对应的id和标识进行关联,得到至少一行数据文档、图形文档。
18.在一个实施例中,将所读取的所述至少一行数据进行释放。
19.在一个实施例中,将所述至少一行数据转换为节点树,对所述节点树上的节点依
次进行解析,并获取所述xml文档的解析结果。
20.在一个实施例中,遍历所述节点树上的所有节点,依次对各所述节点进行解析,获取所述xml文档的解析结果。
21.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。