一种基于OpenXml的定位文档并进行评分的方法及系统技术方案

技术编号:29134034 阅读:18 留言:0更新日期:2021-07-02 22:29
本发明专利技术公开了一种基于OpenXml的定位文档并进行评分的方法,包括以下步骤:S1、通过OpeXml SDK解析目标文档结构和参考文档结构;S2、根据解析的文档结构定位到文档中某个指定样式的父样式;S3、获取所述父样式下的所有样式属性,并过滤出所述样式的属性;S4、将从目标文档和参考文档中获取到的属性以指定方式进行比较;S5、根据比较结果得出评分结果。本发明专利技术还提供了一种基于OpenXml的定位文档并进行评分的系统,系统包括解析单元、定位单元、获取属性单元、比较单元和展示单元。

【技术实现步骤摘要】
一种基于OpenXml的定位文档并进行评分的方法及系统
本专利技术涉及docx文档内容样式的
,具体来说,涉及一种基于OpenXml的定位文档并进行评分的方法及系统。
技术介绍
对于目前市面上常见的计算机等级考试模拟软件,大多存在不能准确获取Office文档属性的情况。在全国计算机等级考试的MSOffice应用科目中,字处理题采用的是机器评分。目前市场上大部分模拟考试系统是通过Com组件处理docx文档,依赖特定的环境,且评分的准确度,精细度均存在一定的问题。
技术实现思路
为解决现有技术中存在的问题,本专利技术提供一种基于OpenXml的定位文档并进行评分的方法及系统,能够解析文档实际的xml文件结构及内容,具有使得评分精细度有显著提升的优点。为实现上述目的,本专利技术采用的技术方案是:一种基于OpenXml的定位文档并进行评分的方法,包括以下步骤:S1、通过OpeXmlSDK解析目标文档结构和参考文档结构;S2、根据解析的文档结构定位到文档中某个指定样式的父样式;S3、获取所述父样式下的所有样式属性,并过滤出所述样式的属性;S4、将从目标文档和参考文档中获取到的属性以指定方式进行比较;S5、根据比较结果得出评分结果。在本技术方案中,由于直接读取的是文档中的xml文件,所以能够获取到指定元素的所有样式属性,完整度高,而且能够满足获取不同属性组合的需求。在进一步的技术方案中,步骤S1包括:通过OpenXmlSDK及OpenXmlSDKProductivityTool分析用户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包括:通过OpenXmlSDK及OpenXmlSDKProductivityTool分析用户docx文档中xml文件的属性和内容。在本实施例中,通过OpenXmlSDK及OpenXmlSDKProductivityTool分析用户docx文档中xml文件的属性和内容,使用树形结构能够直观的把所有属性元素展现出来。在另一个实施例中,步骤S2包括:通过文档中的相关段落定位方式来定位样式所属的父元素;判断所述父元素是否为结构复杂或不具规律性元素,如果是,使用自定义方式并结合动态编译方式获取结构复杂或不具规律性元素;所述自定义方式包括通过位置来寻找关键元素和通过关键字来定位元素。在本实施例中,C语言中CodeDomProvider类可用来创建和检索代码生成器和代码编译器的实例。代码生成器可以生成特定语言的代码,而代码编译器可以将代码文件编译成程序集(*.dll)或可执行文件(*.exe),通过传入特定的字符串作为参数,调用动态编译好的程序,在加上自定义的筛选条件即可定位出指定的元素,主要的定位方式有以下几种,(1)通过位置来寻找关键元素,主要的方法是自定义一个四维数组,其中x,y,z,n项分别:x项表示为当前页面的页数,y项表示为当前页面中的行数,z项表示当前页面的本文档来自技高网...

【技术保护点】
1.一种基于OpenXml的定位文档并进行评分的方法,其特征在于,包括以下步骤:/nS1、通过OpeXmlSDK解析目标文档结构和参考文档结构;/nS2、根据解析的文档结构定位到文档中某个指定样式的父样式;/nS3、获取所述父样式下的所有样式属性,并过滤出所述样式的属性;/nS4、将从目标文档和参考文档中获取到的属性以指定方式进行比较;/nS5、根据比较结果得出评分结果。/n

【技术特征摘要】
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的定位文档并进行评分的方...

【专利技术属性】
技术研发人员:杨帆
申请(专利权)人:成都环宇知了科技有限公司
类型:发明
国别省市:四川;51

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

1