CN113065337A - 一种基于OpenXml的定位文档并进行评分的方法及系统 - Google Patents
一种基于OpenXml的定位文档并进行评分的方法及系统 Download PDFInfo
- Publication number
- CN113065337A CN113065337A CN202110217215.9A CN202110217215A CN113065337A CN 113065337 A CN113065337 A CN 113065337A CN 202110217215 A CN202110217215 A CN 202110217215A CN 113065337 A CN113065337 A CN 113065337A
- Authority
- CN
- China
- Prior art keywords
- document
- scoring
- positioning
- attributes
- style
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/221—Parsing markup language streams
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种基于OpenXml的定位文档并进行评分的方法,包括以下步骤:S1、通过OpeXml SDK解析目标文档结构和参考文档结构;S2、根据解析的文档结构定位到文档中某个指定样式的父样式;S3、获取所述父样式下的所有样式属性,并过滤出所述样式的属性;S4、将从目标文档和参考文档中获取到的属性以指定方式进行比较;S5、根据比较结果得出评分结果。本发明还提供了一种基于OpenXml的定位文档并进行评分的系统,系统包括解析单元、定位单元、获取属性单元、比较单元和展示单元。
Description
技术领域
本发明涉及docx文档内容样式的技术领域,具体来说,涉及一种基于OpenXml的定位文档并进行评分的方法及系统。
背景技术
对于目前市面上常见的计算机等级考试模拟软件,大多存在不能准确获取Office文档属性的情况。在全国计算机等级考试的MS Office应用科目中,字处理题采用的是机器评分。目前市场上大部分模拟考试系统是通过Com组件处理docx文档,依赖特定的环境,且评分的准确度,精细度均存在一定的问题。
发明内容
为解决现有技术中存在的问题,本发明提供一种基于OpenXml的定位文档并进行评分的方法及系统,能够解析文档实际的xml文件结构及内容,具有使得评分精细度有显著提升的优点。
为实现上述目的,本发明采用的技术方案是:一种基于OpenXml的定位文档并进行评分的方法,包括以下步骤:
S1、通过OpeXmlSDK解析目标文档结构和参考文档结构;
S2、根据解析的文档结构定位到文档中某个指定样式的父样式;
S3、获取所述父样式下的所有样式属性,并过滤出所述样式的属性;
S4、将从目标文档和参考文档中获取到的属性以指定方式进行比较;
S5、根据比较结果得出评分结果。
在本技术方案中,由于直接读取的是文档中的xml文件,所以能够获取到指定元素的所有样式属性,完整度高,而且能够满足获取不同属性组合的需求。
在进一步的技术方案中,步骤S1包括:
通过OpenXml SDK及OpenXml SDK Productivity Tool分析用户docx文档中xml文件的属性和内容。
在进一步的技术方案中,步骤S2包括:
通过文档中的相关段落定位方式来定位样式所属的父元素;
判断所述父元素是否为结构复杂或不具规律性元素,如果是,使用自定义方式并结合动态编译方式获取结构复杂或不具规律性元素;
所述自定义方式包括通过位置来寻找关键元素和通过关键字来定位元素。
在进一步的技术方案中,所述父元素包括段落、节、页眉页脚和图表;
所述定位方式包括关键字结合索引定位和正则表达式结合索引定位。
在进一步的技术方案中,步骤S3包括:
传入用户文档后,定位父元素,获取父元素的所有属性;
传入属性表并过滤出指定元素,所述属性表中包含需要获取的属性名称。
在进一步的技术方案中,步骤S4包括:
传入参考文档,并定位父元素,获取父元素的所有属性,传入属性表并过滤出指定元素;
传入用户文档,并定位父元素,获取父元素的所有属性,传入属性表并过滤出指定元素。
在进一步的技术方案中,步骤S5包括:
采用递归的方法,获取父元素下所有子元素的属性;
获取所有子元素属性的名称,并保留每一级的名称,通过内置的比较方式进行比较;
比较方式包括字符串比较方式和数值比较方式。
在本技术方案中,获取所有子元素属性的名称,并保留每一级的名称,能够确保唯一性。
在进一步的技术方案中,步骤还S5包括:
从用户目标文档和用户参考文档中获取到的某种样式的所有属性值,通过字符串比较方式或数值比较方式判断每种属性的正误,并得出比较结果。
在进一步的技术方案中,步骤S5还包括:
预设三种打分模式;
打分模式一为所有属性为正确,打分模式二为至少有一种属性为正确,打分模式三为每一种属性都计分;
根据所述三种打分模式输入比较结果,最终输出评分结果。
本发明还提供一种基于OpenXml的定位文档并进行评分的系统,系统包括解析单元、定位单元、获取属性单元、比较单元和展示单元,其中:
解析单元,用于通过OpeXmlSDK解析目标文档结构和参考文档结构;
定位单元,用于根据解析的文档结构定位到文档中某个指定样式的父样式;
获取属性单元,用于获取所述父样式下的所有样式属性,并过滤出所述样式的属性;
比较单元,用于将从目标文档和参考文档中获取到的属性以指定方式进行比较;
展示单元,用于根据比较结果得出评分结果。
在本技术方案中,由于直接读取的是文档中的xml文件,所以能够获取到指定元素的所有样式属性,完整度高,而且能够满足获取不同属性组合的需求。本发明的有益效果是:
(1)本发明获取到的文档属性是唯一的,提升了获取到的文档的准确性;
(2)本发明能够获取到文档的所有样式,提升了精细度;
(3)本发明获取的属性名称遵守SDK文档定义,降低了开发的难度。
附图说明
图1是本发明所述的一种基于OpenXml的定位文档并进行评分的方法的流程图;
图2是本发明所述一种基于OpenXml的定位文档并进行评分的系统的结构示意图。
附图标记说明:
10、解析单元;11、定位单元;12、获取属性单元;13、比较单元;14、展示单元。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例:
如图1所示,本发明提供了一种基于OpenXml的定位文档并进行评分的方法,包括以下步骤:
S1、通过OpeXmlSDK解析目标文档结构和参考文档结构;
S2、根据解析的文档结构定位到文档中某个指定样式的父样式;
S3、获取所述父样式下的所有样式属性,并过滤出所述样式的属性;
S4、将从目标文档和参考文档中获取到的属性以指定方式进行比较;
S5、根据比较结果得出评分结果。
在本实施例中,由于直接读取的是文档中的xml文件,所以能够获取到指定元素的所有样式属性,完整度高,而且能够满足获取不同属性组合的需求。
在另一个实施例中,步骤S1包括:
通过OpenXml SDK及OpenXml SDK Productivity Tool分析用户docx文档中xml文件的属性和内容。
在本实施例中,通过OpenXml SDK及OpenXml SDK Productivity Tool分析用户docx文档中xml文件的属性和内容,使用树形结构能够直观的把所有属性元素展现出来。
在另一个实施例中,步骤S2包括:
通过文档中的相关段落定位方式来定位样式所属的父元素;
判断所述父元素是否为结构复杂或不具规律性元素,如果是,使用自定义方式并结合动态编译方式获取结构复杂或不具规律性元素;
所述自定义方式包括通过位置来寻找关键元素和通过关键字来定位元素。
在本实施例中,C语言中CodeDomProvider类可用来创建和检索代码生成器和代码编译器的实例。代码生成器可以生成特定语言的代码,而代码编译器可以将代码文件编译成程序集(*.dll)或可执行文件(*.exe),通过传入特定的字符串作为参数,调用动态编译好的程序,在加上自定义的筛选条件即可定位出指定的元素,主要的定位方式有以下几种,(1)通过位置来寻找关键元素,主要的方法是自定义一个四维数组,其中x,y,z,n项分别:x项表示为当前页面的页数,y项表示为当前页面中的行数,z项表示当前页面的列数,n项表示为从{x,y,z}位置处起的一共n个字符,这样既可准确定位元素位置.(2)通过关键字来定位元素,主要的方法为自定义一个二维数组,第一项为序号,目的是为了剔除重复元素,因为一个文档中可能存在多个重复的关键字,加入此序号即可跳过重复关键字,如序号为3,则前面两个关键字则舍弃,第二项为关键字内容,需要完全匹配即可返回。通过相关段落定位样式所属的父元素定位的更加准确。
在另一个实施例中,所述父元素包括段落、节、页眉页脚和图表;所述定位方式包括关键字结合索引定位和正则表达式结合索引定位。
段落的定位方式有两种:段落关键字+索引和正则表达式+索引;对于所属层级结构较为复杂或者不具规律性的元素,引入了动态编译的方式,该方法首先会创建一个C#编译器实例,并设置好相应编译器参数,然后将传入的代码字符串拼接成可运行的片段,然后调用C#编译器编译并运行上述代码片段,通过自定义方式获取不具规律性的元素。
在本实施例中,通过父元素能够获取到文档的所有样式,提升了精细度。
在另一个实施例中,步骤S3包括:
传入用户文档后,定位父元素,获取父元素的所有属性;
传入属性表并过滤出指定元素,所述属性表中包含需要获取的属性名称。
在本实施例中,首先预设了属性表,定义了属性表,属性表里的名称都是按照原有的属性名称组成的,所以属性表里的属性是唯一的,且不会重复。
在另一个实施例中,步骤S4包括:
传入参考文档,并定位父元素,获取父元素的所有属性,传入属性表并过滤出指定元素;
传入用户文档,并定位父元素,获取父元素的所有属性,传入属性表并过滤出指定元素。
在本实施例中,参考文档和用户文档的传入没有先后顺序,先观察我们想要的父元素并预设想要的父元素,根据想要的父元素去过滤出指定的元素。
在另一个实施例中,步骤S5包括:
采用递归的方法,获取父元素下所有子元素的属性;
获取所有子元素属性的名称,并保留每一级的名称,通过内置的比较方式进行比较;
比较方式包括字符串比较方式和数值比较方式。
在本实施例中,获取所有子元素属性的名称,并保留每一级的名称,能够确保唯一性。
在另一个实施例中,步骤还S5包括:
从用户目标文档和用户参考文档中获取到的某种样式的所有属性值,通过字符串比较方式或数值比较方式判断每种属性的正误,并得出比较结果。
在本实施例中,属性的正确错误是按照参考文档的属性值做标准的,当目标文档不符合参考文档的属性值,判断属性为错误。
在另一个实施例中,步骤S5还包括:
预设三种打分模式;
打分模式一为所有属性为正确,打分模式二为至少有一种属性为正确,打分模式三为每一种属性都计分;
根据所述三种打分模式输入比较结果,最终输出评分结果。
在本实施例中,可以组合三种打分模式,取出一系列的属性,每一组属性可能需要不同的打分模式,所以需要根据不同的属性的需求,去将这三种打分模式做不同的组合,使得评分的准确性更高。
本发明还提供一种基于OpenXml的定位文档并进行评分的系统,如图2所示,系统包括解析单元、定位单元、获取属性单元、比较单元和展示单元,其中:
解析单元,用于通过OpeXmlSDK解析目标文档结构和参考文档结构;
定位单元,用于根据解析的文档结构定位到文档中某个指定样式的父样式;
获取属性单元,用于获取所述父样式下的所有样式属性,并过滤出所述样式的属性;
比较单元,用于将从目标文档和参考文档中获取到的属性以指定方式进行比较;
展示单元,用于根据比较结果得出评分结果。
在本实施例中,由于获取属性单元直接读取到的是文档中的xml文件,所以能够获取到指定元素的所有样式属性,完整度高,而且能够满足获取不同属性组合的需求,同时解析单元能够解析文档实际的xml文件结构及内容,具有使得评分精细度有显著提升的优点。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (10)
1.一种基于OpenXml的定位文档并进行评分的方法,其特征在于,包括以下步骤:
S1、通过OpeXmlSDK解析目标文档结构和参考文档结构;
S2、根据解析的文档结构定位到文档中某个指定样式的父样式;
S3、获取所述父样式下的所有样式属性,并过滤出所述样式的属性;
S4、将从目标文档和参考文档中获取到的属性以指定方式进行比较;
S5、根据比较结果得出评分结果。
2.根据权利要求1所述的一种基于OpenXml的定位文档并进行评分的方法,其特征在于,所述步骤S1包括:
通过OpenXmlSDK及OpenXmlSDKProductivityTool分析用户docx文档中xml文件的属性和内容。
3.根据权利要求1所述的一种基于OpenXml的定位文档并进行评分的方法,其特征在于,所述步骤S2包括:
通过文档中的相关段落定位方式来定位样式所属的父元素;
判断所述父元素是否为结构复杂或不具规律性元素,如果是,使用自定义方式并结合动态编译方式获取结构复杂或不具规律性元素;
所述自定义方式包括通过位置来寻找关键元素和通过关键字来定位元素。
4.根据权利要求3所述的一种基于OpenXml的定位文档并进行评分的方法,其特征在于,包括:
所述父元素包括段落、节、页眉页脚和图表;
所述定位方式包括关键字结合索引定位和正则表达式结合索引定位。
5.根据权利要求1所述的一种基于OpenXml的定位文档并进行评分的方法,其特征在于,所述步骤S3包括:
传入用户文档后,定位父元素,获取父元素的所有属性;
传入属性表并过滤出指定元素,所述属性表中包含需要获取的属性名称。
6.根据权利要求1所述的一种基于OpenXml的定位文档并进行评分的方法,其特征在于,所述步骤S4包括:
传入参考文档,并定位父元素,获取父元素的所有属性,传入属性表并过滤出指定元素;
传入用户文档,并定位父元素,获取父元素的所有属性,传入属性表并过滤出指定元素。
7.根据权利要求1所述的一种基于OpenXml的定位文档并进行评分的方法,其特征在于,所述步骤S5包括:
采用递归的方法,获取父元素下所有子元素的属性;
获取所有子元素属性的名称,并保留每一级的名称,通过内置的比较方式进行比较;
比较方式包括字符串比较方式和数值比较方式。
8.根据权利要求1所述的一种基于OpenXml的定位文档并进行评分的方法,其特征在于,所述步骤还S5包括:
从用户目标文档和用户参考文档中获取到的某种样式的所有属性值,通过字符串比较方式或数值比较方式判断每种属性的正误,并得出比较结果。
9.根据权利要求1所述的一种基于OpenXml的定位文档并进行评分的方法,其特征在于,所述步骤S5还包括:
预设三种打分模式;
打分模式一为所有属性为正确,打分模式二为至少有一种属性为正确,打分模式三为每一种属性都计分;
根据所述三种打分模式输入比较结果,最终输出评分结果。
10.一种基于OpenXml的定位文档并进行评分的系统,其特征在于,所述系统包括解析单元、定位单元、获取属性单元、比较单元和展示单元,其中:
解析单元,用于通过OpeXmlSDK解析目标文档结构和参考文档结构;
定位单元,用于根据解析的文档结构定位到文档中某个指定样式的父样式;
获取属性单元,用于获取所述父样式下的所有样式属性,并过滤出所述样式的属性;
比较单元,用于将从目标文档和参考文档中获取到的属性以指定方式进行比较;
展示单元,用于根据比较结果得出评分结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110217215.9A CN113065337B (zh) | 2021-02-26 | 2021-02-26 | 一种基于OpenXml的定位文档并进行评分的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110217215.9A CN113065337B (zh) | 2021-02-26 | 2021-02-26 | 一种基于OpenXml的定位文档并进行评分的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113065337A true CN113065337A (zh) | 2021-07-02 |
CN113065337B CN113065337B (zh) | 2023-06-16 |
Family
ID=76558985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110217215.9A Active CN113065337B (zh) | 2021-02-26 | 2021-02-26 | 一种基于OpenXml的定位文档并进行评分的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113065337B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130014000A1 (en) * | 2011-07-08 | 2013-01-10 | Microsoft Corporation | Conversion tool for XPS and openXPS documents |
CN102982028A (zh) * | 2011-09-02 | 2013-03-20 | 北大方正集团有限公司 | 用于提取文档结构的方法和装置 |
CN102982010A (zh) * | 2011-09-02 | 2013-03-20 | 北大方正集团有限公司 | 提取文档结构的方法和装置 |
CN103023874A (zh) * | 2012-11-21 | 2013-04-03 | 北京航空航天大学 | 一种钓鱼网站检测方法 |
CN103902539A (zh) * | 2012-12-25 | 2014-07-02 | 三星电子(中国)研发中心 | 可扩展标记语言数据解析方法及装置 |
CN104346319A (zh) * | 2013-08-05 | 2015-02-11 | 北大方正集团有限公司 | 检查文档样式的方法及系统 |
CN106843893A (zh) * | 2017-02-07 | 2017-06-13 | 济南浪潮高新科技投资发展有限公司 | 一种基于OpenXML标准的文档版本管理系统 |
CN108733638A (zh) * | 2017-04-17 | 2018-11-02 | 北大方正集团有限公司 | Word稿件的结构化方法及word稿件的结构化装置 |
CN111144070A (zh) * | 2019-12-31 | 2020-05-12 | 北京迈迪培尔信息技术有限公司 | 一种文档解析翻译方法和装置 |
-
2021
- 2021-02-26 CN CN202110217215.9A patent/CN113065337B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130014000A1 (en) * | 2011-07-08 | 2013-01-10 | Microsoft Corporation | Conversion tool for XPS and openXPS documents |
CN102982028A (zh) * | 2011-09-02 | 2013-03-20 | 北大方正集团有限公司 | 用于提取文档结构的方法和装置 |
CN102982010A (zh) * | 2011-09-02 | 2013-03-20 | 北大方正集团有限公司 | 提取文档结构的方法和装置 |
CN103023874A (zh) * | 2012-11-21 | 2013-04-03 | 北京航空航天大学 | 一种钓鱼网站检测方法 |
CN103902539A (zh) * | 2012-12-25 | 2014-07-02 | 三星电子(中国)研发中心 | 可扩展标记语言数据解析方法及装置 |
CN104346319A (zh) * | 2013-08-05 | 2015-02-11 | 北大方正集团有限公司 | 检查文档样式的方法及系统 |
CN106843893A (zh) * | 2017-02-07 | 2017-06-13 | 济南浪潮高新科技投资发展有限公司 | 一种基于OpenXML标准的文档版本管理系统 |
CN108733638A (zh) * | 2017-04-17 | 2018-11-02 | 北大方正集团有限公司 | Word稿件的结构化方法及word稿件的结构化装置 |
CN111144070A (zh) * | 2019-12-31 | 2020-05-12 | 北京迈迪培尔信息技术有限公司 | 一种文档解析翻译方法和装置 |
Non-Patent Citations (2)
Title |
---|
星空STR: "Java解析word文档", 《CNBLOGS.COM/WANGXIN37/P/6397876.HTML》 * |
黄敏 等: "电厂级信息集成系统模型的研究与实现", 《继电器》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113065337B (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhao et al. | Fully automatic wrapper generation for search engines | |
RU2383923C2 (ru) | Проектирование функций электронных таблиц для работы с таблицами данных | |
CN107783950B (zh) | 药品说明书处理方法及装置 | |
Tanaka-Ishii et al. | Computational constancy measures of texts—Yule's K and Rényi's entropy | |
US20080270386A1 (en) | Document retrieval system and document retrieval method | |
Wiechmann et al. | Concordancing software | |
KR101950126B1 (ko) | 수학공식 처리방법, 장치, 설비 및 컴퓨터 저장 매체 | |
CN103927330A (zh) | 一种在搜索引擎中确定形近字的方法和装置 | |
CN106569947A (zh) | 一种从单元测试代码中提取api使用示例的方法与工具 | |
Oliveira et al. | An efficient similarity-based approach for comparing XML documents | |
CN111984669B (zh) | 一种支持动态变量的函数式sql查询方法、装置、设备和介质 | |
US20200311406A1 (en) | Method for analysing digital documents | |
VAYADANDE | Simulating Derivations of Context-Free Grammar | |
CN113065337A (zh) | 一种基于OpenXml的定位文档并进行评分的方法及系统 | |
Nguyen et al. | Output-oriented refactoring in php-based dynamic web applications | |
Peruma et al. | Understanding digits in identifier names: An exploratory study | |
Bramer | Web Programming with PHP and MySQL | |
CN112989795A (zh) | 一种文本信息提取方法、装置、计算机设备及存储介质 | |
JP3919720B2 (ja) | 換言装置及びコンピュータプログラム | |
KR20140147438A (ko) | 마크업 파싱 장치, 방법 및 기록 매체 | |
CN115376705B (zh) | 药品说明书的解析方法和装置 | |
CN112506529B (zh) | 一种使用插件快速构建兼容系统的方法 | |
Cauteruccio et al. | A general approach to uniformly handle different string metrics based on heterogeneous alphabets | |
CN117033380A (zh) | 一种数据溯源的方法、装置、电子设备及存储介质 | |
CN117785994A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |