CN113128178A - 一种通过xml文档对office文件解析的方法 - Google Patents
一种通过xml文档对office文件解析的方法 Download PDFInfo
- Publication number
- CN113128178A CN113128178A CN201911406481.5A CN201911406481A CN113128178A CN 113128178 A CN113128178 A CN 113128178A CN 201911406481 A CN201911406481 A CN 201911406481A CN 113128178 A CN113128178 A CN 113128178A
- Authority
- CN
- China
- Prior art keywords
- document
- file
- data
- xml
- read
- 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
Abstract
本发明公开了一种通过xml文档对office文件解析的方法,包括以下步骤:a、将word文件名称为word.docx的扩展名修改为zip,word文件会变成压缩文件,并形成压缩文件名称word.zip;b、通过解压软件对word.zip文件进行解压,并形成多个标准的xml文件。有益效果是:通过获取XML文档读取指令,该读取指令中包括至少一个待读取行标识,根据上述至少一个待读取行标识,在XML文档中读取出上述至少一个待读取行标识对应的至少一行数据,并将这至少一行数据转换为节点树,对该节点树上的节点进行解析,获取解析结果,实现了只需要根据读取指令读取需要读取的行数据即可,而无需读取整个文档,大大降低了计算机内存的消耗,避免了内存溢出的现象。
Description
技术领域
本发明涉及语言解析技术领域,尤其涉及一种通过xml文档对office文件解析的方法。
背景技术
目前市场对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框架有跨平台限制,不能通用于各个平台。
由于上述2种官方推出的解析方式,不能满足我们日常使用的各种场景以及各种平台调用,我们通过研究office文档结构发现,内部文件关系,以及文件类型均为xml文件,进一步测试、验证,得到可行性方案:即可以通过标准的xml文档对Office文档进行解析,解决对.net framewrok的依赖,而且还适应于目前市场主流的开发语言(C、C++、c#、JAVA、python、VB等各种语言和脚本)进行开发,主流的开发语言均支持读取解析标准的xml文件。
发明内容
本发明的目的是提供一种通过xml文档对office文件解析的方法,只需要了解office文档结构,可以对xml文件进行关联解析,读取相应的数据,对想要的数据,只需要加载必要的关联文件进行解析即可,降低了计算机计算和内存消耗,可以达到跨语言、跨平台等特性,方便目前对office文件的终端使用。
本发明的技术方案是这样实现的:
一种通过xml文档对office文件解析的方法,包括以下步骤:
a、将word文件名称为word.docx的扩展名修改为zip,word文件会变成压缩文件,并形成压缩文件名称word.zip;
b、通过解压软件对word.zip文件进行解压,并形成多个标准的xml文件;
c、按照标准的xml文件方式进行解析,读取文档里面所有的内容;
d、根据文档结构,建立对应模型关系,建立对应的名称空间映射,加载公共部分属性,开始读取主文档,对需要提取的数据进行文档关联遍历解析,根据office文档属性存在于多个文件中,每个文件都有对应的id和标识进行关联,得到至少一行数据文档、图形文档。
进一步的,将所读取的所述至少一行数据进行释放。
进一步的,将所述至少一行数据转换为节点树,对所述节点树上的节点依次进行解析,并获取所述xml文档的解析结果。
进一步的,遍历所述节点树上的所有节点,依次对各所述节点进行解析,获取所述xml文档的解析结果。
本发明的有益效果是:
(1)只需要了解office文档结构,既可以对xml文件进行关联解析,读取相应的数据,对想要的数据,只需要加载必要的关联文件进行解析即可,降低了计算机计算和内存消耗,可以达到跨语言、跨平台等特性,方便目前对office文件的终端使用。
(2)根据文档结构,建立对应模型关系,建立对应的名称空间映射,加载公共部分属性,开始读取主文档,对需要提取的数据进行文档关联遍历解析,根据office文档属性存在于多个文件中,每个文件都有对应的id和标识进行关联,得到至少一行数据、图形,在xml文档中读取出标识对应的至少一行数据,并将这至少一行数据转换为节点树,对该节点树上的节点进行解析,获取解析结果,实现了只需要根据读取指令读取需要读取的行数据即可,而无需读取整个文档,大大降低了计算机内存的消耗,避免了内存溢出的现象;另外,只需要将读取的行数据转换为节点树进行解析,提高解析效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种通过xml文档对office文件解析的方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
根据本发明的实施例,提供了一种通过xml文档对office文件解析的方法。
参照图1,根据本发明实施例的xml文档对office文件解析的方法,包括以下步骤
a、将word文件名称为word.docx的扩展名修改为zip,word文件会变成压缩文件,并形成压缩文件名称word.zip;
b、通过解压软件对word.zip文件进行解压,并形成多个标准的xml文件;
c、按照标准的xml文件方式进行解析,读取文档里面所有的内容;
d、根据文档结构,建立对应模型关系,建立对应的名称空间映射,加载公共部分属性,开始读取主文档,对需要提取的数据进行文档关联遍历解析,根据office文档属性存在于多个文件中,每个文件都有对应的id和标识进行关联,得到至少一行数据文档、图形文档。
在一个实施例中,将所读取的所述至少一行数据进行释放。
在一个实施例中,将所述至少一行数据转换为节点树,对所述节点树上的节点依次进行解析,并获取所述xml文档的解析结果。
在一个实施例中,遍历所述节点树上的所有节点,依次对各所述节点进行解析,获取所述xml文档的解析结果。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种通过xml文档对office文件解析的方法,其特征在于,包括以下步骤:
a、读取office文件,程序对office文件进行解压缩,可以形成多个标准的xml文件;
b、按照标准的xml文件方式进行解析,读取文档里面所有的内容;
c、根据文档结构,建立对应模型关系,建立对应的名称空间映射,加载公共部分属性,开始读取主文档,对需要提取的数据进行文档关联遍历解析,根据office文档属性存在于多个文件中,每个文件都有对应的id和标识进行关联,得到至少一行数据文档、图形文档。
2.根据权利要求1所述的一种通过xml文档对office文件解析的方法,其特征在于,将所读取的所述至少一行数据进行释放。
3.根据权利要求2所述的一种通过xml文档对office文件解析的方法,其特征在于,将所述至少一行数据转换为节点树,对所述节点树上的节点依次进行解析,并获取所述xml文档的解析结果。
4.根据权利要求3所述的一种通过xml文档对office文件解析的方法,其特征在于,遍历所述节点树上的所有节点,依次对各所述节点进行解析,获取所述xml文档的解析结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911406481.5A CN113128178A (zh) | 2019-12-31 | 2019-12-31 | 一种通过xml文档对office文件解析的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911406481.5A CN113128178A (zh) | 2019-12-31 | 2019-12-31 | 一种通过xml文档对office文件解析的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113128178A true CN113128178A (zh) | 2021-07-16 |
Family
ID=76768881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911406481.5A Pending CN113128178A (zh) | 2019-12-31 | 2019-12-31 | 一种通过xml文档对office文件解析的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113128178A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841886A (zh) * | 2011-06-21 | 2012-12-26 | 北大方正集团有限公司 | 拆分文档的方法和装置 |
CN106469137A (zh) * | 2015-08-19 | 2017-03-01 | 互联网域名系统北京市工程研究中心有限公司 | Xml文档解析方法及装置 |
CN109783554A (zh) * | 2018-12-13 | 2019-05-21 | 重庆金融资产交易所有限责任公司 | excel文档解析方法、装置及计算机可读存储介质 |
CN109960608A (zh) * | 2017-12-26 | 2019-07-02 | 北京安天网络安全技术有限公司 | office文档的处理方法和处理系统 |
CN110569488A (zh) * | 2019-08-28 | 2019-12-13 | 福建威盾科技集团有限公司 | 一种基于xml标记语言的模块化模板word生成方法 |
-
2019
- 2019-12-31 CN CN201911406481.5A patent/CN113128178A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841886A (zh) * | 2011-06-21 | 2012-12-26 | 北大方正集团有限公司 | 拆分文档的方法和装置 |
CN106469137A (zh) * | 2015-08-19 | 2017-03-01 | 互联网域名系统北京市工程研究中心有限公司 | Xml文档解析方法及装置 |
CN109960608A (zh) * | 2017-12-26 | 2019-07-02 | 北京安天网络安全技术有限公司 | office文档的处理方法和处理系统 |
CN109783554A (zh) * | 2018-12-13 | 2019-05-21 | 重庆金融资产交易所有限责任公司 | excel文档解析方法、装置及计算机可读存储介质 |
CN110569488A (zh) * | 2019-08-28 | 2019-12-13 | 福建威盾科技集团有限公司 | 一种基于xml标记语言的模块化模板word生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111708539B (zh) | 一种应用程序代码转换方法、装置、电子设备和存储介质 | |
CN107608889B (zh) | 一种测试脚本自动生成方法及系统 | |
US8028276B1 (en) | Method and system for generating a test file | |
CN110333863B (zh) | 一种生成、显示小程序页面的方法及装置 | |
US20060136880A1 (en) | System, apparatus and methods for automatic program translation | |
CN109597618B (zh) | 程序开发方法、装置、计算机设备及存储介质 | |
CN108549535B (zh) | 一种基于文件依赖关系的高效程序解析方法和系统 | |
CN111324619B (zh) | 微服务系统中的对象更新方法、装置、设备和存储介质 | |
CN112364101A (zh) | 数据的同步方法、装置、终端设备及介质 | |
CN110825430A (zh) | 一种api文档生成方法、装置、设备及存储介质 | |
CN113238740B (zh) | 代码生成方法、代码生成装置、存储介质及电子设备 | |
WO2023035563A1 (zh) | 小程序跨应用迁移方法、设备、终端、系统及存储介质 | |
CN107748715B (zh) | 基于Unity的纹理贴图配置信息检测方法及其系统 | |
CN113778897B (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
CN105094787B (zh) | 企业互联网应用的处理方法及装置 | |
CN107239265B (zh) | Java函数与C函数的绑定方法及装置 | |
CN115794214B (zh) | 应用模块元数据管理方法、设备、存储介质及装置 | |
CN112559344A (zh) | 远程mock测试方法及系统 | |
CN113128178A (zh) | 一种通过xml文档对office文件解析的方法 | |
CN113641594B (zh) | 跨端自动化测试方法以及相关装置 | |
CN111259634B (zh) | Xsd格式文件的解析方法及生成方法 | |
CN114115900B (zh) | 一种脚本编译方法、装置及电子设备 | |
CN113590179B (zh) | 插件检测方法、装置、电子设备及存储介质 | |
CN114528218A (zh) | 测试程序的生成方法、装置、存储介质以及电子设备 | |
CN113138767B (zh) | 代码语言转换方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210716 |
|
RJ01 | Rejection of invention patent application after publication |