CN112528080A - 一种docx文件文本内容的提取方法及装置 - Google Patents
一种docx文件文本内容的提取方法及装置 Download PDFInfo
- Publication number
- CN112528080A CN112528080A CN201910828462.5A CN201910828462A CN112528080A CN 112528080 A CN112528080 A CN 112528080A CN 201910828462 A CN201910828462 A CN 201910828462A CN 112528080 A CN112528080 A CN 112528080A
- Authority
- CN
- China
- Prior art keywords
- file
- text
- character
- xml file
- function
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000000605 extraction Methods 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 16
- 230000006870 function Effects 0.000 claims description 116
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 239000000284 extract Substances 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 10
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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)
- Document Processing Apparatus (AREA)
Abstract
本申请实施例公开了一种docx文件文本内容的提取方法及装置,具体为,首先获取dcox文件中的任一个存储有文本内容的XML文件,并触发SAX载入XML文件,提取XML文件中的文本元素,再根据所提取的文本元素获得该XML文件的文本内容。可见,本申请在解析XML文件,利用SAX方式解析XML文件,只需解析文本内容,无需解析文件其他内容,提高文本内容的提取速度。尤其,对于大容量的XML文件,由于SAX解析方式为加载一部分数据、解析一部分数据,处理一部分数据,避免一次性加载XML文件加载时间长的问题,提高大容量XML文件的解析速度。
Description
技术领域
本申请涉及文件处理技术领域,具体涉及一种docx文件文本内容的提取方法及装置。
背景技术
由于Windows操作***的广泛使用,Office支持的docx文件已成为一种广泛使用的编辑文件。在实际应用时,用户常常通过docx文件进行信息交互,这样不免会在docsx文件中携带敏感信息。为防止敏感信息泄露,防泄漏设备需要监控和审计docx文件中的敏感信息。而docx文件作为非结构化,且具有自定义格式的文件,需要先提取docx文件中的文本内容后才可审计是否存在敏感信息。
然而,现有技术在提取docx文件内容时,执行速度有待提高。
发明内容
有鉴于此,本申请实施例提供一种dcox文件文本内容的提取方法及装置,以实现更为高效地提取文本内容。
为解决上述问题,本申请实施例提供的技术方案如下:
在本申请实施例第一方面,提供了一种docx文件文本内容的提取方法,所述方法包括:
获取XML文件;所述XML文件为docx文件中的任一个存储文本内容的文件;
触发SAX载入所述XML文件,提取所述XML文件中的文本元素;
根据所述文本元素获得所述XML文件的文本内容。
在一种可能的实现方式中,所述触发SAX载入所述XML文件,提取所述XML文件中的文本元素,包括:
SAX载入所述XML文件中预设数量的数据,并对载入的数据进行处理后,再载入并处理预设数量的其它部分数据,直至处理完所述XML文件的全部数据。
在一种可能的实现方式中,对载入的数据进行处理的流程,包括:
调用第一类预设函数提取所述XML文件中的文本元素。
在一种可能的实现方式中,所述XML文件中包括每个文本元素的开始符和结束符;所述第一类预设函数包括:
文本元素开始符查找函数,用于查找所述文本元素的开始符;
文本元素结束符查找函数,用于查找所述文本元素的结束符;
字符提取函数,用于提取所述文本元素中的字符;
其中,所述调用第一类预设函数提取所述XML文件中的文本元素,包括:
调用所述文本元素开始符查找函数查找到一个文本元素的开始符,调用所述文本元素结束符查找函数查找所述开始符后的第一个结束符,并调用所述字符提取函数提取所述开始符与所述结束符之间的字符,并作为文本元素。
在一种可能的实现方式中,所述XML文件还包括每个段落的开始符和结束符,所述第一类预设函数还包括段落开始符查找函数和段落结束符查找函数;
所述段落开始符查找函数,用于查找段落的开始符;
所述段落结束符查找函数,用于查找段落的结束符;
所述根据所述文本元素获得所述XML文件的文本内容,包括:
调用所述段落开始符查找函数查找一个段落的开始符,调用所述段落结束符查找函数查找到所述开始符后的第一个结束符,将所述开始符和所述结束符之间的各个文本元素进行拼接,获得当前段落的文本内容;
将各个段落的文本内容进行拼接,获得所述XML文本的文本内容。
在一种可能的实现方式中,所述获取XML文件,包括:
获取所述docx文件,对所述docx文件进行解压,获得XML文件。
在一种可能的实现方式中,所述XML文件为文档文件、注释文件、、脚注文件、页脚文件、页眉文件中任一种;
所述docx文件还包括:关系文件;所述方法还包括:
根据所述关系文件确定各个XML文件被解析的顺序。
在本申请实施例第二方面,提供了一种docx文件文本内容的提取装置,该装置可以包括:
第一获取单元,用于获取XML文件;所述XML文件为docx文件中的任一个存储文本内容的文件;
提取单元,用于触发SAX载入所述XML文件,提取所述XML文件中的文本元素;
第二获取单元,用于根据所述文本元素获得所述XML文件的文本内容。
在一种可能的实现方式中,所述提取单元,具体用于SAX载入所述XML文件中预设数量的数据,并对载入的数据进行处理后,再载入并处理预设数量的其它部分数据,直至处理完所述XML文件的全部数据。
在一种可能的实现方式中,所述提取单元,具体用于,调用第一类预设函数提取所述XML文件中的文本元素。
在一种可能的实现方式中,所述XML文件中包括每个文本元素的开始符和结束符;所述第一类预设函数包括:
文本元素开始符查找函数,用于查找所述文本元素的开始符;
文本元素结束符查找函数,用于查找所述文本元素的结束符;
字符提取函数,用于提取所述文本元素中的字符;
其中,所述提取单元,具体用于调用所述文本元素开始符查找函数查找到一个文本元素的开始符,调用所述文本元素结束符查找函数查找所述开始符后的第一个结束符,并调用所述字符提取函数提取所述开始符与所述结束符之间的字符,并作为文本元素。
在一种可能的实现方式中,所述XML文件还包括每个段落的开始符和结束符,所述第一类预设函数还包括段落开始符查找函数和段落结束符查找函数;
所述段落开始符查找函数,用于查找段落的开始符;
所述段落结束符查找函数,用于查找段落的结束符;
所述第二获取单元,具体用于:调用所述段落开始符查找函数查找一个段落的开始符,调用所述段落结束符查找函数查找到所述开始符后的第一个结束符,将所述开始符和所述结束符之间的各个文本元素进行拼接,获得当前段落的文本内容;将各个段落的文本内容进行拼接,获得所述XML文本的文本内容。
在一种可能的实现方式中,所述第一获取单元,具体用于获取所述docx文件,对所述docx文件进行解压,获得XML文件。
在一种可能的实现方式中,所述XML文件为文档文件、注释文件、脚注文件、页脚文件、页眉文件中任一种;所述docx文件还包括:关系文件;所述装置还包括:
确定单元,用于根据所述关系文件确定各个XML文件被解析的顺序。
在本申请实施例第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的docx文件文本内容的提取方法。
在本申请实施例第四方面,提供了一种用于docx文件文本内容提取的设备,其特征在于,所述设备包括存储器和处理器,所述存储器用于存储一个或者一个以上的程序,所述处理器用于调用所述存储器中的程序,以执行所述的docx文件文本内容的提取方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例首先获取dcox文件中的任一个存储有文本内容的XML文件,并触发SAX载入XML文件,提取XML文件中的文本元素,再根据所提取的文本元素获得该XML文件的文本内容。可见,本申请在解析XML文件,利用SAX方式解析XML文件,只需解析文本内容,无需解析文件其他内容,提高文本内容的提取速度。尤其,对于大容量的XML文件,由于SAX解析方式为加载一部分数据、解析一部分数据,处理一部分数据,避免一次性加载XML文件加载时间长的问题,提高大容量XML文件的解析速度。
附图说明
图1为本申请实施例提供的一种docx文件文本内容的提取方法的流程图;
图2为本申请实施例提供的一种docx文件结构示意图;
图3为本申请实施例提供的一种docx文件文本内容的提取装置结构图;
图4为本申请实施例提供的一种docx文件文本内容的提取设备结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
为便于理解本申请提供的技术方案,下面将对本申请涉及的背景技术进行说明。
发明人在对传统的解析docx文件研究中发现,常见的docx文件解析方式有:基于Apache POI的解析方法,基于COM接口的解析方法。
基于Apache POI的docx文件解析方法,使用Apache POI提供的JAVA API对docx文件进行读取,获取docx文件文本内容,该方法存在以下不足:
1、Apache POI是JAVA API,依赖JAVA环境,因此需要安装JRE,在某些特殊场合(例如资源紧张)不能满足需求;
2、docx文件本身为压缩格式,在文件内文字数量过多时,使用Apache POI解析docx文件时,存在解析速度慢,占用内容高的情况。
基于COM接口的docx文件解析方法,使用Windows提供的COM接口进行docx文件的读取,该方式存在以下不足:
1、COM接口依赖Windows操作***,不能实现跨平台;
2、COM接口在读取docx文件时,会读取文件的格式信息,速度较慢。
基于此,本申请实施例提供了一种docx文件文本内容的提取方法,在提取docx文件的文本内容时,首先获取docx文件中所包括的XML文件,该XML文件存储有文本内容。然后,利用SAX解析方式载入XML文件,提取XML文件中的文本元素,并根据提取的文本元素获得XML文件所包括的文本内容。即,本申请在提取docx文件的文本内容时,利用SAX解析方式从XML文件中获取文本内容,由于SAX只解析文本内容,无需解析docx文件的格式,提高解析速度。
为便于理解本申请的技术方案,将先对本申请涉及的技术名词进行解释。
XML:可扩展标记语言(Extensible Markup Language,XML),是一种用于标记电子文件使其具有结构性的标记语言,是标准通用标记语言的子集。
DOM:文档对象模型(Document Object Model,DOM),W3C组织推荐的处理XML文件的标准编程接口,基于树的解析方式,可以随机访问XML文件。
SAX:XML简单接口(Simple APIs for XML,SAX),是一种事件驱动型XML解析方式,按顺序访问XML文件。
基于上述说明,下面将结合附图对本申请实施例提供的一种文本内容的提取方法进行说明。
参见图1,该图为本申请实施例提供的一种docx文件文本内容的提取方法的流程图,如图1所示,所述方法包括:
S101:获取XML文件,该XML文件为docx文件中的任一个存储文本内容的文件。
本实施例中,对于待处理的docx文件,获取该docx文件中所包括的存储有文本内容的XML文件,以便提取该XML文件中的文本内容。
在具体实现时,由于docx文件为zip压缩格式文件,需对docx文件进行解压后方可获取其所包括的XML文件。具体为,获取dcox文件,对docx文件进行解压,获得XML文件。可以理解的是,docx文件可以包括注释、脚注页眉、页脚等内容,因此,在对docx文件解压时,获取的XML文件可以为:文档文件document.xml、注释文件comments.xml、脚注文件footnotes.xml、页脚文件footer.xml、页眉文件header.xml任一种。
具体地,当解压docx文件后,可以获得_rels、customXml、docProps、word四个文件夹和[Content_Types].xml文件。其中,word文件夹中存储文本内容的文件有文档文件document.xml、注释文件comments.xml、脚注文件footnotes.xml、页脚文件footer.xml以及页眉文件header.xml,如图2所示。
在实际应用时,docx文件中还可以包括关系文件,当解压docx文件获得多个XML文件时,可以根据关系文件确定每个XML文件被解析的顺序。即,根据关系文件中的解析顺序确定当前即将被解析的XML文件。存储各个文件之间关系的是word文件夹下的_rels文件夹下的document.xml.rels文件,即关系文件,如图2所示。
需要说明的是,当存在多个页脚时,则可以解压获得多个页脚文件,其命名方式为footer1.xml、footer2.xml等,依次类推。当存在多个页眉时,其命名方式为header1.xml、header2.xml等,依次类推。
S102:触发SAX载入XML文件,提取XML文件中的文本元素。
本实施例中,针对所获取的XML文件,提取该XML文件中的文本元素。其中,文本元素可以为一个字符、汉字或者词语等。
可以理解的是,由于SAX解析方式为加载一部分、解析一部分和处理一部分,因此,利用SAX载入XML文件,提取XML文件中的文本元素,包括:SAX载入XML文件中预设数量的数据,并对载入的数据进行处理后,再载入并处理预设数量的其它部分数据,直至处理完该XML文件的全部数据。即,可以预设设置每次载入的数据量,利用SAX载入预设数量的数据,解析和处理该预设数量的数据;处理完成后,再从剩余的数据中载入预设数量的数据,再进行解析和处理,直至XML文件的数据被处理完成。
在具体实现时,本实施例提供了一种提取XML文件中文本元素的实现方式,具体为,调用第一类预设函数提取XML文件中的文本元素。即,通过调用第一类预设函数提取XML文件中的文本元素。
其中,XML文件可以包括每个文本元素的开始符和结束符,第一类预设函数可以包括文本元素开始符查找函数、文本元素结束符查找函数和字符提取函数。其中,文本元素开始符查找函数,用于查找所述文本元素的开始符;文本元素结束符查找函数,用于查找所述文本元素的结束符;字符提取函数,用于提取所述文本元素中的字符。
在具体应用时,调用第一类预设函数提取XML文件中的文本元素,包括:调用文本元素开始符查找函数查找到一个文本元素的开始符,调用文本元素结束符查找函数查找开始符后的第一个结束符,并调用字符提取函数提取开始符与结束符之间的字符,并作为文本元素。即,开始符和结束符成对出现,当调用文本元素开始符查找函数查找到一个文本元素的开始符后,利用文本元素结束符查找函数查找紧邻上述开始符的结束符。
在实现过程中,首先利用文本元素开始符查找函数查找到一个文本元素的开始符,然后调用字符提取函数开始提取字符,当利用文本元素结束符查找函数查找到与上述开始符紧邻的结束符时,结束字符的提取,则将上述成对出现的开始符与结束符之间提取的字符作为文本元素。然后,再利用文本元素开始符查找函数查找另一个文本元素的开始符,调用字符提取函数开始提取字符,当利用文本结束符查找函数查找到与上述开始符紧邻的结束符时,结束字符的提取,依次循环,直至处理完XML文件的全部数据。
在实际应用中,可以利用同一个标记作为文本元素的开始符和结束符,例如,用w:t表示文本元素的开始符与结束符,在第一次查找到w:t时,标识一个文本元素的开始,则开始提取字符,在第二次查找到w:t时,标识一个文本元素的结束,结束字符的提取,获取第一个文本元素;在第三次查找到w:t时,标识另一个文本元素的开始,则开始提取字符,在第四次查找到w:t时,标识该另一个文本元素的结束,结束字符的提取,获取第二个文本元素。
S103:根据文本元素获得XML文件的文本内容。
本实施例中,当提取XML文件的文本元素后,如果该XML文件仅包括一个文本元素,则将该文本元素作为该XML文件的文本内容。当XML文件包括多个文本元素时,将所获得文本元素进行拼接获得该目标文件的文本内容。
另外,XML文件还可以包括段落开始符和段落结束符,第一类预设函数还可以包括段落开始符查找函数和段落结束符查找函数。其中,段落开始符查找函数,用于查找段落的开始符;段落结束符查找函数,用于查找段落的结束符。则,根据文本元素获得XML文件的文本内容,包括:
调用段落开始符查找函数查找一个段落的开始符,调用段落结束符查找函数查找到开始符后的第一个结束符,将开始符和结束符之间的各个文本元素进行拼接,获得当前段落的文本内容;将各个段落的文本内容进行拼接,获得XML文本的文本内容。即,段落的开始符和结束符成对出现,将段落的开始符与结束符之间的各个文本元素进行拼接,获得当前段落的文本内容。然后,再将每个段落的文本内容进行拼接,获得整个XML文件的文本内容。
在实际应用中,可以利用同一个标记作为段落的开始符和结束符,例如,用w:p表示段落的开始符与结束符,在第一次查找到w:p时,标识一个段落的开始,在第二次查找到w:p时,标识一个段落的结束;在第三次查找到w:p时,标识另一个段落的开始,在第四次查找到w:t时,标识该另一个段落的结束。
通过上述描述可知,本申请实施例首先获取dcox文件中的任一个存储有文本内容的XML文件,并触发SAX载入XML文件,提取XML文件中的文本元素,再根据所提取的文本元素获得该XML文件的文本内容。可见,通过本申请在解析XML文件,利用SAX方式解析XML文件,只需解析文本内容,无需解析文件格式,提高文本内容的提取速度。
为便于理解本申请,以w:t作为文本元素的开始符和结束符,w:p作为段落的开始符和结束符,当利用段落开始符查找函数查收到w:p时,表明一个段落的开始;利用文本元素开始符查找函数查找到w:t时,表明一个文本元素的开始,此时调用字符提取函数开始提取字符,当利用文本元素结束符查找函数查找到w:t时,表明一个文本元素的结束。当再次利用文本元素开始符查找函数查找到获得w:t时,表明第二个文本元素的开始,调用字符提取函数提取字符,当再次利用文本元素结束符查找函数查找到w:t时,表明第二个文本元素的结束,依次扫描解析,直至段落结束符查找函数查找到w:p,表明当前段落解析完成。当一个段落解析完成后,开始解析下一段落,直至将所有段落解析完成,从而获得XML文件的文本内容。
基于上述方法实施例,本申请还提供了一种docx文件文本内容提取的装置,下面将结合附图对该装置进行说明。
参见图3,该图为本申请实施例提供的一种docx文件文本内容的提取装置,如图3所示,该提取装置300可以包括:
第一获取单元301,用于获取XML文件;所述XML文件为docx文件中的任一个存储文本内容的文件;
提取单元302,用于触发SAX载入所述XML文件,提取所述XML文件中的文本元素;
第二获取单元303,用于根据所述文本元素获得所述XML文件的文本内容。
在一种可能的实现方式中,所述提取单元,具体用于SAX载入所述XML文件中预设数量的数据,并对载入的数据进行处理后,再载入并处理预设数量的其它部分数据,直至处理完所述XML文件的全部数据。
在一种可能的实现方式中,所述提取单元,具体用于,调用第一类预设函数提取所述XML文件中的文本元素。
在一种可能的实现方式中,所述XML文件中包括每个文本元素的开始符和结束符;所述第一类预设函数包括:
文本元素开始符查找函数,用于查找所述文本元素的开始符;
文本元素结束符查找函数,用于查找所述文本元素的结束符;
字符提取函数,用于提取所述文本元素中的字符;
其中,所述提取单元,具体用于调用所述文本元素开始符查找函数查找到一个文本元素的开始符,调用所述文本元素结束符查找函数查找所述开始符后的第一个结束符,并调用所述字符提取函数提取所述开始符与所述结束符之间的字符,并作为文本元素。
在一种可能的实现方式中,所述XML文件还包括每个段落的开始符和结束符,所述第一类预设函数还包括段落开始符查找函数和段落结束符查找函数;
所述段落开始符查找函数,用于查找段落的开始符;
所述段落结束符查找函数,用于查找段落的结束符;
所述第二获取单元,具体用于:调用所述段落开始符查找函数查找一个段落的开始符,调用所述段落结束符查找函数查找到所述开始符后的第一个结束符,将所述开始符和所述结束符之间的各个文本元素进行拼接,获得当前段落的文本内容;将各个段落的文本内容进行拼接,获得所述XML文本的文本内容。
在一种可能的实现方式中,所述第一获取单元,具体用于获取所述docx文件,对所述docx文件进行解压,获得XML文件。
在一种可能的实现方式中,所述XML文件为文档文件、注释文件、脚注文件、页脚文件、页眉文件中任一种;
所述docx文件还包括:关系文件;所述装置还包括:
确定单元,用于根据所述关系文件确定各个XML文件被解析的顺序。
通过上述描述可知,本申请实施例首先获取dcox文件中的任一个存储有文本内容的XML文件,并触发SAX载入XML文件,提取XML文件中的文本元素,再根据所提取的文本元素获得该XML文件的文本内容。可见,本申请在解析XML文件,利用SAX方式解析XML文件,只需解析文本内容,无需解析文件其他内容,提高文本内容的提取速度。尤其,对于大容量的XML文件,由于SAX解析方式为加载一部分数据、解析一部分数据,处理一部分数据,避免一次性加载XML文件加载时间长的问题,提高大容量XML文件的解析速度。
其中,docx文件文本内容的提取装置400包括处理器和存储器,上述第一获取单元301、提取单元302、第二获取单元303等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现docx文件文本内容的提取。
另外,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的docx文件文本内容的提取方法。
本申请实施例提供了一种用于docx文件文本内容提取的设备,其特征在于,所述设备包括存储器和处理器,所述存储器用于存储一个或者一个以上的程序,所述处理器用于调用所述存储器中的程序,以执行所述的docx文件文本内容的提取方法。
本申请实施例还提供了一种docx文件文本内容提取设备,参见图4,该图为本申请实施例提供的一种docx文件文本内容提取设备的结构示意图。图4所示的提取设备400包括至少一个处理器401、以及与处理器401连接的至少一个存储器402、总线403;其中,处理器401、存储器402通过总线403完成相互间的通信;处理器401用于调用存储器402中的程序指令,以执行以上实施例任意一项所述的docx文件文内容的提取方法。
本申请中的docx文件文本内容提取设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
获取XML文件;所述XML文件为docx文件中的任一个存储文本内容的文件;
触发SAX载入所述XML文件,提取所述XML文件中的文本元素;
根据所述文本元素获得所述XML文件的文本内容。
可选的,所述触发SAX载入所述XML文件,提取所述XML文件中的文本元素,包括:
SAX载入所述XML文件中预设数量的数据,并对载入的数据进行处理后,再载入并处理预设数量的其它部分数据,直至处理完所述XML文件的全部数据。
可选的,对载入的数据进行处理的流程,包括:
调用第一类预设函数提取所述XML文件中的文本元素。
可选的,所述XML文件中包括每个文本元素的开始符和结束符;所述第一类预设函数包括:
文本元素开始符查找函数,用于查找所述文本元素的开始符;
文本元素结束符查找函数,用于查找所述文本元素的结束符;
字符提取函数,用于提取所述文本元素中的字符;
其中,所述调用第一类预设函数提取所述XML文件中的文本元素,包括:
调用所述文本元素开始符查找函数查找到一个文本元素的开始符,调用所述文本元素结束符查找函数查找所述开始符后的第一个结束符,并调用所述字符提取函数提取所述开始符与所述结束符之间的字符,并作为文本元素。
可选的,所述XML文件还包括每个段落的开始符和结束符,所述第一类预设函数还包括段落开始符查找函数和段落结束符查找函数;
所述段落开始符查找函数,用于查找段落的开始符;
所述段落结束符查找函数,用于查找段落的结束符;
所述根据所述文本元素获得所述XML文件的文本内容,包括:
调用所述段落开始符查找函数查找一个段落的开始符,调用所述段落结束符查找函数查找到所述开始符后的第一个结束符,将所述开始符和所述结束符之间的各个文本元素进行拼接,获得当前段落的文本内容;
将各个段落的文本内容进行拼接,获得所述XML文本的文本内容。
可选的,所述获取XML文件,包括:
获取所述docx文件,对所述docx文件进行解压,获得XML文件。
可选的,所述XML文件为文档文件、注释文件、、脚注文件、页脚文件、页眉文件中任一种;
所述docx文件还包括:关系文件;所述方法还包括:
根据所述关系文件确定各个XML文件被解析的顺序。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种docx文件文本内容的提取方法,其特征在于,所述方法包括:
获取XML文件;所述XML文件为docx文件中的任一个存储文本内容的文件;
触发SAX载入所述XML文件,提取所述XML文件中的文本元素;
根据所述文本元素获得所述XML文件的文本内容。
2.根据权利要求1所述的方法,其特征在于,所述触发SAX载入所述XML文件,提取所述XML文件中的文本元素,包括:
SAX载入所述XML文件中预设数量的数据,并对载入的数据进行处理后,再载入并处理预设数量的其它部分数据,直至处理完所述XML文件的全部数据。
3.根据权利要求2所述的方法,其特征在于,对载入的数据进行处理的流程,包括:
调用第一类预设函数提取所述XML文件中的文本元素。
4.根据权利要求3所述的方法,其特征在于,所述XML文件中包括每个文本元素的开始符和结束符;所述第一类预设函数包括:
文本元素开始符查找函数,用于查找所述文本元素的开始符;
文本元素结束符查找函数,用于查找所述文本元素的结束符;
字符提取函数,用于提取所述文本元素中的字符;
其中,所述调用第一类预设函数提取所述XML文件中的文本元素,包括:
调用所述文本元素开始符查找函数查找到一个文本元素的开始符,调用所述文本元素结束符查找函数查找所述开始符后的第一个结束符,并调用所述字符提取函数提取所述开始符与所述结束符之间的字符,并作为文本元素。
5.根据权利要求4所述的方法,其特征在于,所述XML文件还包括每个段落的开始符和结束符,所述第一类预设函数还包括段落开始符查找函数和段落结束符查找函数;
所述段落开始符查找函数,用于查找段落的开始符;
所述段落结束符查找函数,用于查找段落的结束符;
所述根据所述文本元素获得所述XML文件的文本内容,包括:
调用所述段落开始符查找函数查找一个段落的开始符,调用所述段落结束符查找函数查找到所述开始符后的第一个结束符,将所述开始符和所述结束符之间的各个文本元素进行拼接,获得当前段落的文本内容;
将各个段落的文本内容进行拼接,获得所述XML文本的文本内容。
6.根据权利要求1所述的方法,其特征在于,所述获取XML文件,包括:
获取所述docx文件,对所述docx文件进行解压,获得XML文件。
7.根据权利要求1所述的方法,其特征在于,所述XML文件为文档文件、注释文件、脚注文件、页脚文件、页眉文件中任一种;
所述docx文件还包括:关系文件;所述方法还包括:
根据所述关系文件确定各个XML文件被解析的顺序。
8.一种docx文件文本内容的提取装置,其特征在于,所述装置包括:
第一获取单元,用于获取XML文件;所述XML文件为docx文件中的任一个存储文本内容的文件;
提取单元,用于触发SAX载入所述XML文件,提取所述XML文件中的文本元素;
第二获取单元,用于根据所述文本元素获得所述XML文件的文本内容。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现权利要求1至7中任一项所述的docx文件文本内容的提取方法。
10.一种用于docx文件文本内容提取的设备,其特征在于,所述设备包括存储器和处理器,所述存储器用于存储一个或者一个以上的程序,所述处理器用于调用所述存储器中的程序,以执行权利要求1至7中任一项所述的docx文件文本内容的提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910828462.5A CN112528080A (zh) | 2019-09-03 | 2019-09-03 | 一种docx文件文本内容的提取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910828462.5A CN112528080A (zh) | 2019-09-03 | 2019-09-03 | 一种docx文件文本内容的提取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112528080A true CN112528080A (zh) | 2021-03-19 |
Family
ID=74974766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910828462.5A Pending CN112528080A (zh) | 2019-09-03 | 2019-09-03 | 一种docx文件文本内容的提取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112528080A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0428365D0 (en) * | 2004-12-24 | 2005-02-02 | Ibm | Methods and apparatus for generating a parser and parsing a document |
CN104598635A (zh) * | 2015-02-06 | 2015-05-06 | 无锡江南计算技术研究所 | 一种基于xml描述的复杂文档自动生成方法 |
CN105354282A (zh) * | 2015-10-30 | 2016-02-24 | 青岛海尔智能家电科技有限公司 | 一种xml文件检索方法及装置 |
CN109783554A (zh) * | 2018-12-13 | 2019-05-21 | 重庆金融资产交易所有限责任公司 | excel文档解析方法、装置及计算机可读存储介质 |
CN110083805A (zh) * | 2018-01-25 | 2019-08-02 | 北京大学 | 一种将Word文件转换为EPUB文件的方法及*** |
-
2019
- 2019-09-03 CN CN201910828462.5A patent/CN112528080A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0428365D0 (en) * | 2004-12-24 | 2005-02-02 | Ibm | Methods and apparatus for generating a parser and parsing a document |
CN104598635A (zh) * | 2015-02-06 | 2015-05-06 | 无锡江南计算技术研究所 | 一种基于xml描述的复杂文档自动生成方法 |
CN105354282A (zh) * | 2015-10-30 | 2016-02-24 | 青岛海尔智能家电科技有限公司 | 一种xml文件检索方法及装置 |
CN110083805A (zh) * | 2018-01-25 | 2019-08-02 | 北京大学 | 一种将Word文件转换为EPUB文件的方法及*** |
CN109783554A (zh) * | 2018-12-13 | 2019-05-21 | 重庆金融资产交易所有限责任公司 | excel文档解析方法、装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
黑熊扑通, pages 1 - 5, Retrieved from the Internet <URL:http://blog.csdn.net/qq_36025972/article/details/96205948> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017124952A1 (zh) | 一种网页脚本加载方法和装置 | |
CN106909361B (zh) | 基于模版引擎的web开发方法和装置 | |
WO2012041672A1 (en) | Finding partition boundaries for parallel processing of markup language documents | |
CN111831384A (zh) | 语言切换方法和装置、设备及存储介质 | |
CN107015986B (zh) | 一种爬虫爬取网页的方法及装置 | |
CN109062906B (zh) | 程序语言资源的翻译方法及装置 | |
CN104899203B (zh) | 一种网页页面的生成方法、装置及终端设备 | |
CN109558548B (zh) | 一种消除css样式冗余的方法及相关产品 | |
CN110020343B (zh) | 网页编码格式的确定方法和装置 | |
CN115437930B (zh) | 网页应用指纹信息的识别方法及相关设备 | |
CN112579947A (zh) | 网页元素图的截取方法、装置及电子设备 | |
CN115292203B (zh) | 一种源代码分析方法及装置 | |
CN108427664B (zh) | 一种文档解析方法和装置 | |
CN112528080A (zh) | 一种docx文件文本内容的提取方法及装置 | |
CN110929188A (zh) | 服务端页面渲染方法及装置 | |
CN110928549B (zh) | 一种重编辑前端脚本程序的方法及装置 | |
CN114490848A (zh) | 文件解析处理方法、装置、存储介质以及电子设备 | |
CN110083576B (zh) | 一种缓存目录的识别方法及装置 | |
CN113268617A (zh) | 论文元数据的检测方法及装置 | |
CN113361256A (zh) | 一种基于Aspose技术的Word文档快速解析方法 | |
CN112445936A (zh) | 一种提取xlsx文件内容的方法及装置 | |
CN113392628A (zh) | 一种文本解析结果的核查方法及装置 | |
CN112446193A (zh) | 一种提取pptx文件内容的方法及装置 | |
CN112541327A (zh) | 一种数据读取方法、装置、电子设备及存储介质 | |
CN113342416B (zh) | 一种在小程序中展示h5图文数据的方法及设备 |
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 |