CN115858685B - 需求文件的在线同步方法和装置、终端、可读存储介质 - Google Patents
需求文件的在线同步方法和装置、终端、可读存储介质 Download PDFInfo
- Publication number
- CN115858685B CN115858685B CN202310107422.8A CN202310107422A CN115858685B CN 115858685 B CN115858685 B CN 115858685B CN 202310107422 A CN202310107422 A CN 202310107422A CN 115858685 B CN115858685 B CN 115858685B
- Authority
- CN
- China
- Prior art keywords
- file
- demand
- requirement
- content
- target
- 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.)
- Active
Links
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种需求文件的在线同步方法和装置、终端、可读存储介质,能够对需求文件实现系统的条目化管理,并能够将修改的需求内容同步更新到需求文件中,即实现了需求文件的实时在线编辑功能。所述在线同步方法包括:采用COM接口对所述需求文件进行需求解析并转化为html文件;将所述html文件按需求进行分割并提取出每个需求的富文本格式内容写入数据库;通过富文本编辑器对所述html文件的需求的内容进行编辑,更新所述数据库,并采用COM接口将更新后的需求内容转换为与所述需求文件一致的格式,更新到所述需求文件中。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种需求文件的在线同步方法和装置、终端、可读存储介质。
背景技术
基于远程办公和协作的需求,目前开发中经常需要对需求文件实现在线同步和编辑功能。需求文件多为word格式,对word格式的需求文件的在线同步和编辑,目前主流技术方案多是对docx格式标准进行解析和编辑,将docx文件改为zip后缀,解压,然后分析文件结构,解析或编辑docx中的xml文件的节点,然后进行html富文本格式的转换,过程需要很强的word专业开发技能,且工作量巨大。
发明内容
本申请提供的一种需求文件的在线同步方法和装置、终端、可读存储介质,能够对需求文件实现系统的条目化管理,并能够将实时修改的需求内容同步更新到需求文件中,即实现了需求文件的在线编辑功能。
第一方面,本申请提供一种需求文件的在线同步方法,包括:
采用COM接口对所述需求文件进行需求解析并转化为html文件;
将所述html文件按需求进行分割并提取出每个需求的富文本格式内容写入数据库;
通过富文本编辑器对所述html文件中的需求的内容进行编辑,更新所述数据库,并采用COM接口将更新后的需求内容转换为与所述需求文件一致的格式,更新到所述需求文件中。
可选地,所述采用COM接口对所述需求文件进行需求解析并转化为html文件,包括:采用微软的COM接口打开需求文件,所述需求文件为包含预设需求标记和/或按预设格式编写的word文档;根据所述预设需求标记和/或预设格式对所述需求文件进行需求解析,将解析结果另存为html文件,关闭所述COM接口。
可选地,所述根据所述预设需求标记和/或预设格式对所述需求文件进行需求解析,将解析结果另存为html文件,包括:通过正则表达式甄别所述预设需求标记和/或预设格式,确定每个需求的起始段落、内容段落和结束段落;新建文档,将解析出的每个需求的内容段落复制至新建的所述文档,并在相邻的分属不同需求的两个内容段落之间插入所述需求间隔标记;将记载有需求内容的所述文档保存成html文件。
可选地,在所述html文件中,相邻两个需求之间设置有需求间隔标记,所述需求间隔标记用于在所述html文件中快速提取各个需求的内容;所述将所述html文件按需求进行分割并提取出每个需求的富文本格式内容写入数据库包括:提取相邻的两个所述需求间隔标记之间的body标签内容,写入数据库。
可选地,在所述提取出每个需求的富文本格式内容之后,所述写入数据库之前,还包括:判断每个需求的富文本格式内容中是否存在图片链接;当存在图片链接时,将所述图片链接替换为对应的图片在文件服务器上的存储位置。
可选地,所述采用COM接口对需求文件进行需求解析之前,所述方法还包括:根据大文件配置条件,判断所述需求文件是否为大文件,若判定为大文件,则执行大文件的解析流程,所述大文件的解析流程包括:
将判定为大文件的所述需求文件拆分成多个需求子文件;
采用多线程技术,同时对拆分成得到的多个需求子文件分别进行解析。
可选地,所述将判定为大文件的所述需求文件拆分成多个需求子文件,包括:将所述需求文件拆分为包括章节架构的第一部分和除所述第一部分之外的第二部分,将所述需求文件的第一部分的内容保存为第一子文件;使用COM的查找接口,在所述需求文件的第二部分内容中,使用正则表达式获取到各需求的起始段落,为所述各需求的起始段落添加对应的唯一性书签,并将所述唯一性书签与需求的对应关系写入到所述数据库;针对添加了所述唯一性书签的所述需求文件的第二部分内容,基于各需求的起始段落,将每N个需求对应的内容保存为一个需求子文件,N为大于等于1的正整数。
可选地,所述方法还包括:在各所述需求子文件解析完成,并将解析结果写入所述数据库之后,把各需求子文件包括的内容重新插入到包括所述需求文件的第一部分的所述第一子文件中,得到包含所述唯一性书签的第一需求文件,将所述第一需求文件上传到文件服务器替换所述需求文件。
可选地,采用COM接口将更新后的需求内容转换为与所述需求文件一致的格式,更新到所述需求文件中,包括:
从所述数据库中读取更新的第一需求的富文本内容,调用COM接口创建第一文档,将读取的所述第一需求的富文本内容拷贝到所述第一文档中,并将所述第一文档另存为docx格式;所述第一需求为所述数据库中任一发生更新的需求;
复制所述docx格式的第一文档中的所述第一需求的内容;
调用COM接口打开目标需求文件,确定目标需求的位置,将所述目标需求的内容替换为自所述第一文档中复制的所述第一需求的内容,保存并替换所述目标需求文件;所述目标需求为需求文件中与所述第一需求对应的待更新的需求;所述目标需求文件为包含所述目标需求的需求文件。
可选地,所述确定目标需求的位置,将所述目标需求的内容替换为自所述第一文档中复制的所述第一需求的内容,包括:逐行读取所述目标需求文件的各段落,根据所述目标需求文件包含的预设需求标记和/或所述目标需求文件的预设格式进行目标需求定位;定位到待更新的目标需求后,删除所述目标需求的内容段落;将自所述第一文档中复制的所述第一需求的内容段落插入到所述目标需求所在位置之后,完成文件更新。
可选地,所述调用COM接口打开目标需求文件之后,确定目标需求的位置之前,还包括:判断目标需求文件是否为配置的大文件;如果判定不是大文件,遍历段落确定所述目标需求的位置;如果判定是大文件,所述确定目标需求的位置包括:通过查询所述数据库获取所述第一需求对应的唯一性书签,根据所述唯一性书签确定所述目标需求的位置。
可选地,在所述需求文件导入或者更新完成后,所述方法还包括:基于所述需求文件转换出PDF格式的需求文件;将所述需求文件以及转换出的所述PDF格式的需求文件一并上传到文件服务器;用户预览所述需求文件时,直接在浏览器中根据所述PDF格式的需求文件的位置链接打开。
第二方面,本申请还提供一种需求文件的在线同步装置,所述装置包括:需求解析模块、需求分割模块和需求更新模块;所述需求解析模块,用于采用COM接口对所述需求文件进行需求解析并转化为html文件;所述需求分割模块,用于将所述html文件按需求进行分割并提取出每个需求的富文本格式内容写入数据库;所述需求更新模块,用于通过富文本编辑器对所述html文件中的需求的内容进行编辑,更新所述数据库,并采用COM接口将更新后的需求内容转换为与所述需求文件一致的格式,更新到所述需求文件中。
可选地,所述需求文件为包含预设需求标记和/或按预设格式编写的word文档;所述需求解析模块解析过程包括:采用微软的COM接口打开需求文件,根据所述预设需求标记和/或预设格式对所述需求文件进行需求解析,将解析结果另存为html文件,关闭所述COM接口。
可选地,所述需求解析模块包括:甄别单元,用于通过正则表达式甄别所述预设需求标记和/或预设格式,确定每个需求的起始段落、内容段落和结束段落;新建单元,用于新建文档,将解析出的每个需求的内容段落复制至新建的所述文档,并在相邻的分属不同需求的两个内容段落之间插入所述需求间隔标记;保存单元,用于将记载有需求内容的所述文档保存成html文件。
可选地,需求分割模块用于提取所述html文件中相邻的两个所述需求间隔标记之间的body标签内容,写入所述数据库。
可选地,所述装置还包括:大文件配置单元,用于预先配置大文件;
大文件判定单元,用于根据大文件配置条件,判断所述需求文件是否为大文件,若判定为大文件,则提交给下述单元进行大文件解析处理:
大文件拆分单元,用于将判定为大文件的所述需求文件拆分成多个需求子文件;
多线程处理单元,用于采用多线程技术,同时对拆分成得到的多个需求子文件分别进行解析。
可选地,所述大文件拆分单元具体用于:将所述需求文件拆分为包括章节架构的第一部分和除所述第一部分之外的第二部分,将所述需求文件的第一部分的内容保存为第一子文件;还用于使用COM的查找接口,在所述需求文件的第二部分内容中,使用正则表达式获取到各需求的起始段落,为所述各需求的起始段落添加对应的唯一性书签,并将所述唯一性书签与需求的对应关系写入到数据库;针对添加了所述唯一性书签的所述需求文件的第二部分内容,基于各需求的起始段落,将每N个需求对应的内容保存为一个需求子文件,N为大于等于1的正整数。
可选地,所述装置还包括:需求子文件合并单元,用于在所述需求解析模块将多个需求子文件解析完成,且所述需求分割模块将解析结果写入所述数据库之后,把各需求子文件包括的内容重新插入到包括所述需求文件的第一部分的所述第一子文件中,得到包含所述唯一性书签的第一需求文件,将所述第一需求文件上传到文件服务器替换所述需求文件。
可选地,所述装置还包括:图片链接处理单元,用于在需求分割模块将提取的每个需求的富文本格式内容写入数据库之前,判断每个需求的富文本格式内容中是否存在图片链接;并在当存在图片链接时,将所述图片链接替换为对应的图片在文件服务器上的存储位置。
进一步地,所述需求更新模块包括:
需求格式转换单元,用于从所述数据库中读取更新的第一需求的富文本内容,调用COM接口创建第一文档,将读取的所述第一需求的富文本内容拷贝到所述第一文档中,并将所述第一文档另存为docx格式;所述第一需求为所述数据库中任一发生更新的需求;
需求内容复制单元,用于复制所述docx格式的第一文档中的所述第一需求的内容;
目标需求定位单元,用于调用COM接口打开目标需求文件,确定目标需求的位置;
目标需求替换单元,用于将所述目标需求的内容替换为自所述第一文档中复制的所述第一需求的内容,保存并替换所述目标需求文件;所述目标需求为需求文件中与所述第一需求对应的待更新的需求;所述目标需求文件为包含所述目标需求的需求文件。
可选地,所述目标需求定位单元具体可用于:逐行读取所述目标需求文件的各段落,根据预设需求标记和/或按预设格式进行目标需求定位;所述目标需求替换单元具体可用于在定位到待更新的目标需求后,删除所述目标需求的内容段落;将自所述第一文档中复制的所述第一需求的内容段落插入到所述目标需求之后,完成文件更新。
可选地,所述装置还包括唯一性书签获取单元,所述唯一性书签获取单元用于通过查询所述数据库获取所述第一需求对应的唯一性书签,并根据所述唯一性书签确定所述目标需求的位置;
所述大文件判定单元还用于判断所述目标需求文件是否为配置的大文件;如果所述大文件判定单元判定不是大文件,所述目标需求定位单元遍历段落确定所述目标需求的位置;
如果所述大文件判定单元判定所述目标需求文件是大文件,所述目标需求定位单元通过唯一性书签获取单元定位目标需求。
第三方面,本申请还提供一种终端,包括存储器和处理器,所述存储器存储有程序,所述程序用于被所述处理器运行以执行上述任一项所述的需求文件的在线同步方法。
第四方面,本申请还提供一种可读存储介质,所述可读存储介质中存储有程序,所述程序用于被处理器运行以执行如上述任一项所述的需求文件的在线同步方法。
本申请实施例提供的需求文件的在线同步方法和装置、终端、可读存储介质,跳过需求文件的内部结构,从上层的宏观使用层面,使用COM接口对需求文件的进行解析、编辑和转换操作,利用微软OFFICE提供的强大功能,实现网页系统的富文本与需求文件的同步,能够将实时修改的需求内容同步更新到需求文件中,即实现了需求文件的在线编辑功能。同时,通过数据库能够对需求文件实现系统的条目化管理。
附图说明
图1为本申请一实施例的需求文件的在线同步方法的流程示意图;
图2为本申请一实施例提供的需求文件中的需求的示意图;
图3为本申请一实施例提供的系统中的需求的示意图;
图4为本申请一实施例提供的在线PDF预览示意图;
图5为本申请一实施例提供的需求文件解析流程图;
图6为本申请一实施例提供的需求文件在线更新流程图;
图7为本申请一实施例提供的在线同步装置的结构示意图;
图8为本申请一实施例提供的包含解析部分的在线同步装置的结构示意图;
图9为本申请一实施例提供的包含解析部分和在线更新部分的在线同步装置的结构示意图;
图10是本申请一个实施例提供的装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的实施例提供一种需求文件的在线同步方法,如图1所示,该方法包括:
S1、采用COM接口对所述需求文件进行需求解析并转化为html文件;
本申请的需求文件指项目开发中描述业务方需求的文件,本申请的需求文件包括一个或多个需求。目前需求文件多为WORD格式。
本步骤中对所述需求文件进行需求解析,指从所述需求文件中确定需求以及描述需求的实质内容的类目,以及转化为html文件需要的信息如段落信息,或者后续需求文件更新需要的或间接需要的一些信息如需求的位置信息等。例如,在一些实施例中,可以在编制或处理需求文件时通过预先添加需求标记,或者通过预设不同格式的方式,或者同时采用上述两种方式,来标记需求,以便计算机在解析(或更新)时能定位或识别各需求。
为便于解析需求文件,所述需求文件包含预设需求标记和/或按预设格式编写。本实施例对预设需求标记或预设格式不做具体限定,只要能在需求解析时满足快速需求识别的目的即可。
示例性地,所述需求文件为word格式,已按预设的格式编辑好,如图2所示。该word格式的需求文件,除按前言、背景等章节架构编制外,对需求文件中每个需求的表述格式也做了限制,如在每个需求前插入需求标识,本实施例的需求标识包括特定标识和需求编号,特定标识例如可以如图2中的“●”加字符串如“R-SBC”,需求编号例如可以为“R-SBC”后面的四位数字编号如0010、0020等;需求编号后面紧跟着需求名称,如“XXX激活”或“XXX管理”。需求编号与需求名称之间可以通过“:”分隔。
其中,字符串(如“R-SBC”)还可以进一步配置,例如,一种示例性配置如下:R可以代表对应的需求类型,SBC可以代表的所属的功能模块,中间用下划线隔开,便于识别时区分。需求类型为便于描述需求,对需求进行细化而作的分类,例如可包括总体功能需求、模块功能需求和架构需求等,便于后续将需求分类存储在数据库中。
特定标识和需求编号与需求名称构成需求的第一个段落,下面称为起始段落。紧随起始段落后的第二个段落可以为描述该需求实质内容的内容段落。
其中,所述采用COM接口对所述需求文件进行需求解析并转化为html文件,包括:采用微软的COM接口打开需求文件,所述需求文件为包含预设需求标记和/或按预设格式编写的word文档;根据所述预设需求标记和/或预设格式对所述需求文件进行需求解析,将解析结果另存为html文件,关闭所述COM接口。
步骤S1中采用微软的COM接口打开需求文件,可根据上述的预设需求标记对WORD需求文件进行需求解析,将解析结果另存为html文件,然后关闭COM接口。在其他实施例中,也可以仅通过预设格式来区分不同的需求。在另一些实施例中,也可以通过预设需求标记并结合预设格式来区分不同的需求。
示例性地,对应上文如图2所示需求文件,具体的解析方法可包括:通过正则表达式甄别所述预设需求标记和/或预设格式,确定每个需求的起始段落、内容段落和结束段落;新建文档,将解析出的每个需求的内容段落复制至新建文档,并在相邻的分属不同需求的两个内容段落之间插入需求间隔标记;将记载有需求内容的上述新建文档保存成html文件。
S2、将所述html文件按需求进行分割并提取出每个需求的富文本格式内容写入数据库;
本步骤中抽取所述html文件中各需求对应的富文本格式并写入数据库,以便后续时使用。
示例性地,步骤S1中将解析出的每个需求的内容复制至所述新建文档时,在相邻两个需求之间插入一需求间隔标记,这样另存为html的文件中,相邻两个需求之间就设置有需求间隔标记,所述需求间隔标记用于在html文件中快速提取各个需求的内容。
步骤S2中可根据上述需求间隔标记,将html文件按需求进行分割并提取出每个需求的富文本格式内容写入数据库,由WEB前端的富文本编辑器进行展示。HTML是一种完整的网页格式,包括hinder和body。html文件中body标签内容部分即为富文本格式的需求。本步骤提取出每个需求的富文本格式内容写入数据库,具体地可以是提取相邻的两个需求间隔标记之间的body标签内容,例如通过复制黏贴方式将“开始标签<body>”以及“结束标签</body>”之间内容写入数据库。
S3、通过富文本编辑器对所述html文件中包括的需求的内容进行编辑,更新所述数据库,并采用COM接口将更新后的需求内容转换为与所述需求文件一致的格式,更新到对应的需求文件中。
数据库起存储作用,用于存储解析出的富文本格式的需求内容,在前端展示时直接从数据库读取并展示为网页。需求编辑人员可以在网页前端编辑需求,使得需求内容发生变化,之后点击保存后,后台将更新后的需求的富文本格式内容保存到数据库里,同时还需更新到对应的需求文件中。
本步骤中,由WEB前端的富文本编辑器进行展示,用户或者其他设备通过富文本编辑器对html文件中包括的需求内容进行编辑,编辑完成后更新数据库,更新过程可以参照步骤S2中的解析过程。然后采用COM接口将更新后的需求内容转换为与原始需求文件一致的格式,更新到对应的需求文件中,所述对应的需求文件指的是包括该更新后的需求内容所属需求的需求文件。
本申请实施例中,能够保证需求文件如word需求文件中每个需求的内容段落(每个需求例如可包括需求起始段落、内容段落和结束段落)与Web中富文本格式的该需求的内容一致。
需求的段落格式包括多种样式,有许多是自定义样式,如果使用现有的word处理库如python-docx进行段落处理,无法完整复制段落格式,且段落位置定位、插入操作无法实现。本申请中采用COM接口的形式对word文档进行需求解析,对整个需求内容进行选择、复制、粘贴、另存为html转换,实现word需求文件中的需求的内容从word格式到富文本格式的转换,可以克服上述问题。
在一些实施例中,可选地,在步骤S2提取出每个需求的富文本格式内容后,写入数据库之前,本实施例的方法还包括:判断每个需求的富文本格式内容中是否存在图片链接;当存在图片链接时,将所述图片链接替换为对应的图片在文件服务器上的存储位置。
解析需求文件的过程中,需求文件中的图片在富文本中只是一个链接属性,无法在Web中直接显示,需要预先将图片上传至文件服务器来对需求文件中的图片进行存储,文件服务器返回该图片存储的URL,使用该图片在文件服务器上存储的URL替换富文本格式的需求内容中该图片的链接路径,实现图片文件的显示。
可选地,在一些实施例中,采用COM接口对需求文件进行需求解析之前,所述在线同步方法还包括:根据大文件配置条件,判断所述需求文件是否为大文件,若判定为大文件,则执行大文件的解析流程,所述大文件的解析流程包括:
将判定为大文件的需求文件拆分成多个需求子文件;
采用多线程技术,同时对拆分得到的多个需求子文件分别进行解析,并提取出需求文件中包括的每个需求的富文本格式内容写入数据库。
当需求文件过大时,需要针对大文件做相应的处理,提高处理效率、降低错误概率。大文件配置条件,即认定一个需求文件过大需要拆分成多个需求子文件并采用多线程技术分别解析的条件,具体可以从文件大小、文件行数以及需求数量这些方面来配置。当需求文件的文件大小、文件行数以及需求数量中的一项或多项超出对应的预设阈值时,需求文件即被判定为大文件。即,从文件大小、文件行数以及需求数量来决定是否开启大文件处理流程。
例如,在一些实施例中,大文件配置条件可以为需求文件的大小大于第一阈值,且需求文件中需求的数量大于第二阈值。
大文件处理流程中,先将判定为大文件的需求文件拆分成多个需求子文件;然后采用多线程技术,同时对拆分得到的多个需求子文件分别进行解析,以提高处理效率;解析完成后,将解析结果写入数据库。这样,通过拆分加多线程技术,可以同时对大文件的不同部分(即拆分成的多个需求子文件)进行处理,可提高处理效率、降低错误概率。其中的多个需求子文件的解析、将解析结果写入数据库的具体实施方法参见上文步骤S1和S2提到的普通文件的解析过程及写入过程,此处不再赘述。
其中,将判定为大文件的需求文件拆分成多个需求子文件,可采用如下具体方案:
将所述需求文件拆分为包括章节架构的第一部分和除所述第一部分之外的第二部分,将所述需求文件的第一部分内容保存为第一子文件。其中,所述第一部分包括需求文件的章节架构,所述第二部分即为所述需求文件中除章节架构之外的内容。
本步骤将所述需求文件的每个需求所在章节除标题外的所有内容剪切后、仅保留该需求所在章节的章节架构作为第一部分,保存为第一子文件(即在第一子文件中只保留各需求的章节架构)。而剪切掉的内容(每个需求所在章节除标题外的所有内容)中包括各需求的实质内容,这部分内容作为第二部分,后续拆分为多个需求子文件。
使用COM的查找接口,在所述需求文件的第二部分中,使用正则表达式获取到各需求的起始段落,为各需求的起始段落分别添加对应该需求的唯一性书签,并将该唯一性书签与需求的对应关系写入到数据库;唯一性书签与需求一一对应,通过唯一性书签可在大文件中快速定位某个需求。
然后,针对添加了所述唯一性书签的所述需求文件的第二部分内容,基于各需求的起始段落,将每N个需求对应的内容保存为一个需求子文件,N为大于等于1的正整数,N的具体数值可以配置。可知,每个需求子文件中包括N个需求所在章节除章节架构外的内容以及该N个需求分别对应的唯一性书签。具体的,针对添加了唯一性书签的所述需求文件的第二部分内容,可以从其中包括的第一个需求开始,顺序提取各需求对应的内容,并将提取到的每N个需求的内容保存在一个需求子文件中;当然,在本申请其他实施例,也可以对提取的顺序不做限制。
采用多线程技术,对拆分得到的多个需求子文件进行解析后,把各需求子文件包括的内容重新插入到包括第一部分的第一子文件中,得到包含唯一性书签的完整需求文件即第一需求文件,然后将所述第一需求文件上传到文件服务器替换掉判定为大文件的需求文件。可知,所述第一需求文件包括原始需求文件中每个需求的所有内容以及各需求分别对应的唯一性书签。
可选地,在一些实施例中,步骤S3中采用COM接口将更新后的需求内容转换为与所述需求文件一致的格式,更新到对应的所述需求文件中,具体可包括:
从数据库中读取更新的第一需求的富文本内容,调用COM接口创建第一文档,将读取的所述第一需求的富文本内容拷贝到第一文档中,并将所述第一文档另存为docx格式,所述第一需求为所述数据库中任一发生更新的需求;
复制所述第一文档中的所述第一需求的内容;
调用COM接口打开目标需求文件,确定待修改的目标需求的位置,将所述目标需求的内容替换为从所述第一文档中复制的所述第一需求的内容,保存并替换所述目标需求文件,完成需求文件的在线更新。所述目标需求为需求文件中与第一需求对应的待更新的需求;所述目标需求文件为包含所述目标需求的需求文件。
如果Web前端的富文本编辑器编辑了第一需求的内容,目标需求文件则指需要同步更新的需求文件,目标需求指目标需求文件中需要同步更新的需求。
其中,可选地,所述确定待修改的目标需求的位置,将目标需求替换为从第一文档中复制的第一需求,可包括:逐行读取所述目标需求文件的各段落,根据所述目标需求文件包含的预设需求标记和/或所述目标需求文件的预设格式(例如需求编码的格式和内容)进行目标需求定位;然后定位到待更新的目标需求段落后,删除所述目标需求的内容段落;最后再将从所述第一文档中复制的所述第一需求的内容段落插入到所述目标需求的起始段落之后,完成文件更新。
可选地,在其他实施例中,所述调用COM接口打开目标需求文件之后,确定目标需求的位置之前,还可包括:判断目标需求文件是否为配置的大文件;如果判定不是大文件,遍历段落确定目标需求的位置。
如果判定是大文件,所述确定目标需求的位置包括:通过查询所述数据库获取所述第一需求对应的唯一性书签,根据所述唯一性书签快速确定待修改的目标需求的位置。所述唯一性书签为大文件解析时为每个需求添加的,且与需求一一对应的书签,能快速定位某个需求。
可选地,采用COM接口对所述需求文件进行需求解析之前,还包括:从浏览器导入所述需求文件,先将所述需求文件上传至文件服务器,在网页后台服务器中下载所述需求文件保存到本地。
可选地,在所述需求文件导入或者更新完成后,还包括:基于所述需求文件转换出PDF格式的需求文件;将所述需求文件以及转换出的所述PDF格式的需求文件一并上传到文件服务器;用户预览所述需求文件时,直接在浏览器中根据所述PDF格式的需求文件的位置链接打开。
为便于理解本申请技术方案,下面结合具体的实施例进行进一步地说明。
一种采用了本申请技术方案的需求管理平台,需求管理平台是一个web平台,从现有的需求文件导入需求,进行系统的需求条目化管理,能够在前端进行展示。需求编辑后需求内容发生的变化能更新到对应的需求文件。在整个同步过程中,要保持web前端中的需求描述格式与需求文件的格式一致,同时提供需求文件的在线pdf预览。
其中,需求文件中的需求如图2所示,系统中的需求格式如图3所示。在线PDF预览如图4所示。
参照图5所示,需求文件解析流程如下:
101、用户从浏览器导入需求文件,浏览器将接收到的需求文件上传至文件服务器;
102、Web后台服务器从上述的文件服务器中下载需求文件,保存到本地并处理,处理流程如下:
103、判断需求文件是否为大文件。
当需求文件过大时,需要针对大文件做相应的处理,提高处理效率、降低错误概率。需求文件过大的判断条件可配置,如可以从需求文件大小、文件行数以及需求数量来决定是否开启大文件处理流程。
如果判定需求文件为大文件,执行步骤104-122(大文件解析存储流程),如果判定需求文件不是大文件,执行普通文件的解析步骤109-120(普通文件的解析存储流程)。
普通文件的解析存储流程如下:
109、调用COM接口打开需求文件;
110、使用正则表达式对需求段落进行定位;
需求段落即一个需求对应的段落。对需求段落进行定位,例如可以是通过对需求编码(一种预设需求标记)进行甄别,确定需求文件中的每个需求的位置。
111、以需求为单位组织段落;
一个需求包括三类段落:起始段落、需求描述的内容段落、结束段落(即需求结尾段落)。起始段落一般只有一段,内容段落可以包含很多段落,结束段落可以包含0到多个段落。以需求为单位组织段落,指确定每个需求包括的段落,后续操作以需求为单位进行。具体地,可以是利用正则表达式解析所有段落,确定每个需求的起始段落、内容段落和结束段落,把各段落分门别类的放到某个需求下。
通过微软的COM接口打开需求文件,逐行读取段落,例如可以根据需求编码的格式进行正则表达式甄别,确定每个需求的起始段落、内容段落和结束段落。
112、新建空白文档;
113、将所有需求段落插入到步骤112的新建空白文档(简称新文档),需求之间插入需求间隔标记;
114、将新文档保存成临时html文件,关闭COM接口;
新建一个空白文档,将每个需求的内容段落粘贴至步骤112新建的空白文档,并在每个需求之间插入一个需求间隔标记。粘贴完毕后,将上述新文档保存成临时html文件,关闭COM接口。
115、根据需求间隔符按需求为单位对html文件进行分割解析;
116、提取出需求的富文本格式内容;
根据113插入的需求间隔符(即预设的需求间隔标记),可以在html文件中快速提取富文本格式的需求内容。具体地,可以根据需求间隔符对html文件按需求进行分割解析,提取出每个需求的富文本格式。
117、判断每个需求的富文本格式内容中是否存在图片链接;
118、当存在图片链接时,上传所述图片链接指向的图片至文件服务器,文件服务器返回该图片的URL路径,即该图片在文件服务器上的存储位置;
119、将富文本格式内容中的图片链接替换为该图片的URL路径;
120、将每个需求的富文本格式内容写入数据库,后续由WEB前端的富文本编辑器进行展示。
如果判定需求文件为大文件,执行大文件解析存储流程,所述大文件的解析存储流程包括如下步骤:
104、调用COM接口打开步骤103判定为大文件的需求文件,将需求所在章节除标题外的所有内容剪切保存到新文档;
在流程开始前,配置当前需求文件中需求所在的章节,流程开始后,通过COM接口打开大文件,将需求所在章节除标题外的所有内容剪切后保存,即原文件只保留了前言、背景等章节架构。
105、在新文档中,对所有需求段落按正则表达式查找每个需求的起始段落;
106、给每个起始段落添加一个书签,并将书签与需求的对应关系写入数据库,形成书签索引;
在新文档中使用COM的查找接口,按正则表达式获取到所有需求的起始段落,并给这些起始段落添加一个书签,且该书签与需求的对应关系写入到数据库存储,形成书签索引。该些书签具有唯一性,即需求与书签一一对应,后续通过查找书签索引,可以快速定位需求。
107、以这些需求的起始段落为基准,每N(N可配置)个需求保存为一个需求子文件;
108、然后开启多线程进行多文件同步解析;
采用多线程技术,同时对这些需求子文件进行解析,开启的最大线程数可配置。
步骤108多线程对这些需求子文件进行解析时,调用普通文件的解析存储流程,即每个线程内解析时执行109-120。在所有需求子文件解析完成后,并将解析结果写入数据库之后,再执行步骤121:
121、将解析结果写入数据库之后,然后把这些需求子文件的内容重新插入到只保留了前言、背景等章节架构的原文件,合成一个新的大文件,该大文件与解析之前相比,为每个需求增加了书签,用于快速定位每个需求的位置,便于后续更新。
122、将步骤121中形成的新的大文件上传文件服务器,替换掉原来的判定为大文件的需求文件。
如上所述,需求文件解析存储至数据库后,由WEB前端的富文本编辑器进行展示。当更新需求时,在Web前端的富文本编辑器编辑需求内容后,将需求内容转换为word格式,同步更新到需求文件中,并且保证富文本中样式与需求文件中的样式一致。
参照图6所示,需求文件的更新流程具体如下:
201、用户通过浏览器编辑需求内容,后台从数据库中读取该条需求(待更新的需求)的内容段落的富文本;
202、从文件服务器下载目标需求文件,目标需求文件为包含该条需求,因此需要进行更新的需求文件;
203、调用COM接口创建一个新文档,将目标需求的内容段落的富文本内容拷贝到新文档中,另存为docx格式;
204、全选并复制docx格式文档的所有段落;
205、调用COM接口打开目标需求文件(步骤202中已下载到本地);
206、判断所述目标需求文件是否是大文件(大文件的判断条件可配置);
当判定目标需求文件是大文件时,逐个段落进行定位解析耗时过长,需要做单独处理,即执行流程207和208来实现目标需求的快速定位。如果判定为不是大文件,则执行步骤207’。
207、读取数据库,获取目标需求的书签索引;
在大需求文件导入时,每个需求文件中的需求都有一个书签(见上文大文件解析存储流程),所以在大文件更新时,可以利用该书签进行目标需求的快速定位。本步骤中读取数据库,获取目标需求对应的书签名称。
208、调用COM接口,在需求文件中通过书签索引快速获取目标需求的段落的起始位置;
如果判定为不是大文件,则执行步骤207’。
207’、直接遍历目标需求文件的所有段落,定位待更新的目标需求的位置;本步骤中例如可以逐行读取段落,根据需求编码的格式和内容进行目标需求定位。
209、待定位到待更新的目标需求后,将步骤204复制的需求的内容段落替换掉目标需求的内容段落。
具体地,可以是定位到目标需求的段落后,删除目标需求的内容段落和结束段落。将步骤204复制的需求的内容段落插入到目标需求文件的目标需求的起始段落之后,完成目标需求的更新。
210、然后,保存目标需求文件,并将更新后的目标需求文件重新上传到文件服务器,替换掉原来的目标需求文件,实现需求文件的同步更新。
另外,需求文件预览是以pdf文件在浏览器中显示的,需要先在后台下载需求文件,调用COM接口转换为pdf后,将文件返回浏览器进行展示。每次文件预览都需要经历一次,大文件时尤其耗时。
因此本申请方案在需求文件导入和更新完成后,会同时转换出一份pdf文件,与需求文件一并上传到文件服务器。需求文件预览时,直接在浏览器中打开pdf文件的URL即可,大大提高了预览速度。
本申请的技术方案能够对现有的需求文件实现系统的条目化管理,并能够将实时修改的需求内容同步更新到需求文件中,变相的实现了需求文件的在线编辑功能。
本申请的技术方案还提供了针对大文件的解析和更新的技术方案,大大提高了需求文件同步的实时性和可靠性,具备了需求在线管理的实用性。
第二方面,本申请还提供一种需求文件的在线同步装置,用以实现上述任一项所述的需求文件的在线同步方法。如图7所示,所述在线同步装置100包括:
需求解析模块10,用于采用COM接口对所述需求文件进行需求解析并转化为html文件;
需求分割模块20,用于将所述html文件按需求进行分割并提取出每个需求的富文本格式内容写入数据库;
需求更新模块30,用于通过富文本编辑器对所述html文件中的需求的内容进行编辑时,更新所述数据库,并采用COM接口将更新后的需求内容转换为与所述需求文件一致的格式,更新到所述需求文件中。
其中,所述需求文件为包含预设需求标记和/或按预设格式编写的word文档。所述需求解析模块解析过程具体可包括:采用微软的COM接口打开需求文件,根据所述预设需求标记和/或预设格式对所述需求文件进行需求解析,将解析结果另存为html文件,关闭所述COM接口。
所述需求解析模块10可包括:甄别单元,用于通过正则表达式甄别所述预设需求标记和/或预设格式,确定每个需求的起始段落、内容段落和结束段落;新建单元,用于新建文档,将解析出的每个需求的内容段落复制至所述新建文档,并在相邻的分属不同需求的两个内容段落之间插入所述需求间隔标记;保存单元,用于将记载有需求内容的所述新建文档保存成html文件。
示例性地,需求分割模块20具体可用于提取所述html文件中相邻的两个所述需求间隔标记之间的body标签内容,写入数据库15。
如图8所示,所述装置100还可包括:大文件配置单元16,用于预先配置大文件;大文件判定单元17,用于根据大文件配置条件,判断所述需求文件是否为大文件,若判定为大文件,则提交给下述单元进行大文件解析处理,包括:大文件拆分单元18,用于将判定为大文件的所述需求文件拆分成多个需求子文件;多线程处理单元19,用于采用多线程技术,同时对拆分成得到的多个需求子文件分别进行解析。每个需求子文件解析时调用前面所述的需求解析模块10进行需求解析和富文本格式转化,调用需求分割模块20提取每个需求的富文本格式内容写入数据库15。
所述大文件拆分单元18具体用于:将所述需求文件拆分为包括章节架构的第一部分和除所述第一部分之外的第二部分,将所述需求文件的第一部分的内容保存为第一子文件;还用于使用COM的查找接口,在所述需求文件的第二部分内容中,使用正则表达式获取到各需求的起始段落,为所述各需求的起始段落添加对应的唯一性书签,并将所述唯一性书签与需求的对应关系写入到数据库;针对添加了所述唯一性书签的所述需求文件的第二部分内容,基于各需求的起始段落,将每N个需求对应的内容保存为一个需求子文件,N为大于等于1的正整数。
可选地,所述装置100还包括:需求子文件合并单元20,用于在需求解析模块10将多个需求子文件解析完成,且需求分割模块20将解析结果写入数据库15之后,把各需求子文件包括的内容重新插入到包括所述需求文件的第一部分的所述第一子文件中,得到包含所述唯一性书签的第一需求文件,将所述第一需求文件上传到文件服务器替换所述需求文件。
所述装置100还可包括:图片链接处理单元14,用于在需求分割模块20将提取的每个需求的富文本格式内容写入数据库15之前,判断每个需求的富文本格式内容中是否存在图片链接;并在当存在图片链接时,将所述图片链接替换为对应的图片在文件服务器上的存储位置。
如图9所示,进一步地,所述需求更新模块30包括:需求格式转换单元31,用于从所述数据库中读取更新的第一需求的富文本内容,调用COM接口创建第一文档,将读取的所述第一需求的富文本内容拷贝到所述第一文档中,并将所述第一文档另存为docx格式;所述第一需求为所述数据库中任一发生更新的需求;需求内容复制单元32,用于复制所述docx格式的第一文档中的所述第一需求的内容;目标需求定位单元33,用于调用COM接口打开目标需求文件,确定目标需求的位置;目标需求替换单元34,用于将所述目标需求的内容替换为自所述第一文档中复制的所述第一需求的内容,保存并替换所述目标需求文件;所述目标需求为需求文件中与所述第一需求对应的待更新的需求;所述目标需求文件为包含所述目标需求的需求文件。
可选地,所述目标需求定位单元33具体可用于:逐行读取所述目标需求文件的各段落,根据所述预设需求标记和/或按预设格式进行目标需求定位;所述目标需求替换单元34具体可用于在定位到待更新的目标需求后,删除所述目标需求的内容段落;将自所述第一文档中复制的所述第一需求的内容段落插入到所述目标需求之后,完成文件更新。
可选地,所述装置还包括唯一性书签获取单元35,所述唯一性书签获取单元35用于通过查询所述数据库15获取所述第一需求对应的唯一性书签,并根据所述唯一性书签确定所述目标需求的位置。调用COM接口打开目标需求文件之后,确定目标需求的位置之前,大文件判定单元17判断目标需求文件是否为配置的大文件;如果大文件判定单元17判定不是大文件,目标需求定位单元33遍历段落确定所述目标需求的位置。如果大文件判定单元17判定标需求文件是大文件,目标需求定位单元33通过唯一性书签获取单元35定位目标需求。
第三方面,本申请还提供一种终端,包括存储器和处理器,所述存储器存储有程序,所述程序用于被所述处理器运行以执行上述任一项所述的需求文件的在线同步方法。
第四方面,本申请还提供一种可读存储介质,所述可读存储介质中存储有程序,所述程序用于被处理器运行以执行如上述任一项所述的需求文件的在线同步方法。
本申请跳过word文档的内部结构,从上层的宏观使用层面,使用COM接口对word文档进行解析、编辑和转换操作,利用微软OFFICE提供的强大功能,实现web系统的富文本与word文档的同步。
本申请的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括:终端设备、服务器(集群)等电子设备。图10示意性地示出了可被用于实现本申请中所述的各个实施例的示例性装置1100。
对于一个实施例,图10示出了示例性装置1100,该装置具有一个或多个处理器1102、被耦合到(一个或多个)处理器1102中的至少一个的控制模块(芯片组)1104、被耦合到控制模块1104的存储器1106、被耦合到控制模块1104的非易失性存储器(NVM)/存储设备1108、被耦合到控制模块1104的一个或多个输入/输出设备1110,以及被耦合到控制模块1104的网络接口1112。
处理器1102可包括一个或多个单核或多核处理器,处理器1102可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1100 能够作为本申请实施例中所述终端设备、服务器(集群)等设备。
在一些实施例中,装置1100 可包括具有指令1114的一个或多个计算机可读介质(例如,存储器1106或NVM/ 存储设备1108) 以及与该一个或多个计算机可读介质相合并被配置为执行指令1114以实现模块从而执行本公开中所述的动作的一个或多个处理器1102。
对于一个实施例,控制模块1104可包括任意适当的接口控制器,以向(一个或多个)处理器1102中的至少一个和/或与控制模块1104通信的任意适当的设备或组件提供任意适当的接口。
控制模块1104可包括存储器控制器模块,以向存储器1106提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
存储器1106可被用于例如为装置1100加载和存储数据和/或指令1114。对于一个实施例,存储器1106可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,存储器1106可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM) 。
对于一个实施例,控制模块1104可包括一个或多个输入/输出控制器,以向NVM/存储设备1108及(一个或多个)输入/输出设备1110 提供接口。
例如,NVM/存储设备1108可被用于存储数据和/或指令1114。NVM/存储设备1108可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD) 、一个或多个光盘(CD) 驱动器和/或一个或多个数字通用光盘(DVD) 驱动器)。
NVM/存储设备1108可包括在物理上作为装置1100 被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如, NVM/存储设备1108可通过网络经由(一个或多个)输入/输出设备1110 进行访问。
(一个或多个)输入/输出设备1110 可为装置1100 提供接口以与任意其他适当的设备通信,输入/输出设备1110可以包括通信组件、音频组件、传感器组件等。网络接口1112可为装置1100 提供接口以通过一个或多个网络通信,装置1100 可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi、2G、3G、4G、5G等,或它们的组合进行无线通信。
对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器(例如,存储器控制器模块) 的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例, (一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例, (一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,装置1100可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1100 可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1100包括一个或多个摄像机、键盘、液晶显示器(LCD) 屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC) 和扬声器。
其中,检测装置中可采用主控芯片作为处理器或控制模块,传感器数据、位置信息等存储到存储器或NVM/存储设备中,传感器组可作为输入/输出设备,通信接口可包括网络接口。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (13)
1.一种需求文件的在线同步方法,其特征在于,包括:
采用COM接口对所述需求文件进行需求解析并转化为html文件;
将所述html文件按需求进行分割并提取出每个需求的富文本格式内容写入数据库;
通过富文本编辑器对所述html文件中的需求的内容进行编辑,更新所述数据库,并采用COM接口将更新后的需求内容转换为与所述需求文件一致的格式,更新到所述需求文件中;
所述采用COM接口对所述需求文件进行需求解析并转化为html文件,包括:
采用微软的COM接口打开需求文件,所述需求文件为包含预设需求标记和/或按预设格式编写的word文档;
根据所述预设需求标记和/或预设格式对所述需求文件进行需求解析,将解析结果另存为html文件,关闭所述COM接口;
所述根据所述预设需求标记和/或预设格式对所述需求文件进行需求解析,将解析结果另存为html文件,包括:
通过正则表达式甄别所述预设需求标记和/或预设格式,确定每个需求的起始段落、内容段落和结束段落;
新建文档,将解析出的每个需求的内容段落复制至新建的所述文档,并在相邻的分属不同需求的两个内容段落之间插入需求间隔标记;
将记载有需求内容的所述文档保存成html文件。
2.根据权利要求1所述的在线同步方法,其特征在于,在所述html文件中,相邻两个需求之间设置有需求间隔标记,所述需求间隔标记用于在所述html文件中快速提取各个需求的内容;所述将所述html文件按需求进行分割并提取出每个需求的富文本格式内容写入数据库包括:
提取相邻的两个所述需求间隔标记之间的body标签内容,写入数据库。
3.根据权利要求1所述的在线同步方法,其特征在于,在所述提取出每个需求的富文本格式内容之后,所述写入数据库之前,还包括:
判断每个需求的富文本格式内容中是否存在图片链接;
当存在图片链接时,将所述图片链接替换为对应的图片在文件服务器上的存储位置。
4.根据权利要求1-3任一项所述的在线同步方法,其特征在于,所述采用COM接口对所述需求文件进行需求解析之前,所述方法还包括:根据大文件配置条件,判断所述需求文件是否为大文件,若判定为大文件,则执行大文件的解析流程,所述大文件的解析流程包括:
将判定为大文件的所述需求文件拆分成多个需求子文件;
采用多线程技术,同时对拆分得到的多个需求子文件分别进行解析。
5.根据权利要求4所述的在线同步方法,其特征在于,所述将判定为大文件的所述需求文件拆分成多个需求子文件,包括:
将所述需求文件拆分为包括章节架构的第一部分和除所述第一部分之外的第二部分,将所述需求文件的第一部分的内容保存为第一子文件;
使用COM的查找接口,在所述需求文件的第二部分内容中,使用正则表达式获取到各需求的起始段落,为所述各需求的起始段落添加对应的唯一性书签,并将所述唯一性书签与需求的对应关系写入到所述数据库;
针对添加了所述唯一性书签的所述需求文件的第二部分内容,基于各需求的起始段落,将每N个需求对应的内容保存为一个需求子文件,N为大于等于1的正整数。
6.根据权利要求5所述的在线同步方法,其特征在于,所述方法还包括:
在各所述需求子文件解析完成,且将解析结果写入所述数据库之后,把各所述需求子文件包括的内容重新插入到包括所述需求文件的第一部分的所述第一子文件中,得到包含所述唯一性书签的第一需求文件,将所述第一需求文件上传到文件服务器替换所述需求文件。
7.根据权利要求1所述的在线同步方法,其特征在于,所述采用COM接口将更新后的需求内容转换为与所述需求文件一致的格式,更新到所述需求文件中,包括:
从所述数据库中读取更新的第一需求的富文本内容,调用COM接口创建第一文档,将读取的所述第一需求的富文本内容拷贝到所述第一文档中,并将所述第一文档另存为docx格式;所述第一需求为所述数据库中任一发生更新的需求;
复制所述docx格式的第一文档中的所述第一需求的内容;
调用COM接口打开目标需求文件,确定目标需求的位置,将所述目标需求的内容替换为自所述第一文档中复制的所述第一需求的内容,保存并替换所述目标需求文件;所述目标需求为需求文件中与所述第一需求对应的待更新的需求;所述目标需求文件为包含所述目标需求的需求文件。
8.根据权利要求7所述的在线同步方法,其特征在于,所述确定目标需求的位置,将所述目标需求的内容替换为自所述第一文档中复制的所述第一需求的内容,包括:
逐行读取所述目标需求文件的各段落,根据所述目标需求文件包含的预设需求标记和/或所述目标需求文件的预设格式进行目标需求定位;
定位到待更新的目标需求后,删除所述目标需求的内容段落;
将自所述第一文档中复制的所述第一需求的内容段落插入到所述目标需求所在位置之后,完成文件更新。
9.根据权利要求7所述的在线同步方法,其特征在于,所述调用COM接口打开目标需求文件之后,确定目标需求的位置之前,还包括:判断所述目标需求文件是否为配置的大文件;
如果判定不是大文件,遍历段落确定所述目标需求的位置;
如果判定是大文件,所述确定目标需求的位置包括:
通过查询所述数据库获取所述第一需求对应的唯一性书签,根据所述唯一性书签确定所述目标需求的位置。
10.根据权利要求1所述的在线同步方法,其特征在于,在所述需求文件导入或者更新完成后,所述方法还包括:
基于所述需求文件转换出PDF格式的需求文件;
将所述需求文件以及转换出的所述PDF格式的需求文件一并上传到文件服务器;
用户预览所述需求文件时,直接在浏览器中根据所述PDF格式的需求文件的位置链接打开。
11.一种需求文件的在线同步装置,其特征在于,所述装置包括:需求解析模块、需求分割模块和需求更新模块;
所述需求解析模块,用于采用COM接口对所述需求文件进行需求解析并转化为html文件;
所述需求分割模块,用于将所述html文件按需求进行分割并提取出每个需求的富文本格式内容写入数据库;
所述需求更新模块,用于通过富文本编辑器对所述html文件中的需求的内容进行编辑,更新所述数据库,并采用COM接口将更新后的需求内容转换为与所述需求文件一致的格式,更新到所述需求文件中;
所述需求解析模块还用于采用微软的COM接口打开需求文件,所述需求文件为包含预设需求标记和/或按预设格式编写的word文档;根据所述预设需求标记和/或预设格式对所述需求文件进行需求解析,将解析结果另存为html文件,关闭所述COM接口;
所述需求解析模块还用于通过正则表达式甄别所述预设需求标记和/或预设格式,确定每个需求的起始段落、内容段落和结束段落;新建文档,将解析出的每个需求的内容段落复制至新建的所述文档,并在相邻的分属不同需求的两个内容段落之间插入需求间隔标记;将记载有需求内容的所述文档保存成html文件。
12.一种终端,其特征在于,包括存储器和处理器,所述存储器存储有程序,所述程序用于被所述处理器运行以执行权利要求1至10中任一项所述的需求文件的在线同步方法。
13.一种可读存储介质,其特征在于,所述可读存储介质中存储有程序,所述程序用于被处理器运行以执行如上述权利要求1至10中任一项所述的需求文件的在线同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310107422.8A CN115858685B (zh) | 2023-02-14 | 2023-02-14 | 需求文件的在线同步方法和装置、终端、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310107422.8A CN115858685B (zh) | 2023-02-14 | 2023-02-14 | 需求文件的在线同步方法和装置、终端、可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115858685A CN115858685A (zh) | 2023-03-28 |
CN115858685B true CN115858685B (zh) | 2023-05-23 |
Family
ID=85657982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310107422.8A Active CN115858685B (zh) | 2023-02-14 | 2023-02-14 | 需求文件的在线同步方法和装置、终端、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858685B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976268A (zh) * | 2010-11-19 | 2011-02-16 | 百度在线网络技术(北京)有限公司 | 一种在线文档阅读装置及方法 |
CN115048905A (zh) * | 2022-07-12 | 2022-09-13 | 电子科大科园股份有限公司 | 富文本编辑器的文件处理方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6865599B2 (en) * | 2001-09-04 | 2005-03-08 | Chenglin Zhang | Browser-to-browser, dom-based, peer-to-peer communication with delta synchronization |
CN102004779B (zh) * | 2010-11-19 | 2012-11-28 | 百度在线网络技术(北京)有限公司 | 一种文档共享平台的文档处理方法及系统 |
US9471556B2 (en) * | 2013-01-30 | 2016-10-18 | Microsoft Technology Licensing, Llc | Collaboration using multiple editors or versions of a feature |
CN107656941A (zh) * | 2016-07-26 | 2018-02-02 | 阿里巴巴集团控股有限公司 | 文件解析方法、装置及富文本编辑器 |
CN107734074B (zh) * | 2017-11-29 | 2020-06-12 | 常州中价之星软件技术有限公司 | 一种在线阅读和编辑文档的实现方法 |
-
2023
- 2023-02-14 CN CN202310107422.8A patent/CN115858685B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976268A (zh) * | 2010-11-19 | 2011-02-16 | 百度在线网络技术(北京)有限公司 | 一种在线文档阅读装置及方法 |
CN115048905A (zh) * | 2022-07-12 | 2022-09-13 | 电子科大科园股份有限公司 | 富文本编辑器的文件处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115858685A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112203122B (zh) | 基于人工智能的相似视频处理方法、装置及电子设备 | |
CN110083805B (zh) | 一种将Word文件转换为EPUB文件的方法及系统 | |
CN101937427B (zh) | 一种基于浏览器的内容编辑及发布的系统及方法 | |
CN106610774B (zh) | 网页表格编辑方法及装置 | |
US20060080603A1 (en) | Method and apparatus for utilizing an object model to manage document parts for use in an electronic document | |
JP2022547895A (ja) | ユーザカスタマイズ型の文書自動作成方法、そのための装置及びサーバー | |
US9817887B2 (en) | Universal text representation with import/export support for various document formats | |
CN113609820A (zh) | 基于可扩展标记语言文件生成word文件的方法、装置及设备 | |
CN104699714A (zh) | 将书版格式文件转换为epub格式文件的方法及装置 | |
CN113177168B (zh) | 一种基于Web元素属性特征的定位方法 | |
CN111753536B (zh) | 一种专利申请文本的自动撰写方法和装置 | |
CN109299352B (zh) | 搜索引擎中网站数据的更新方法、装置和搜索引擎 | |
CN104765849A (zh) | 一种获取拷贝数据来源信息的方法和系统 | |
EP3776549A1 (en) | Displaying enhancement items associated with an audio recording | |
CN104462532A (zh) | 网页正文提取的方法和装置 | |
CN106528088A (zh) | 在线表单中填充控件的方法和装置 | |
US10204080B2 (en) | Rich formatting for a data label associated with a data point | |
WO2015057457A1 (en) | Systems and methods to segment text for layout and rendering | |
CN1588352A (zh) | 一种可扩展标记语言文档修改痕迹的记录方法 | |
US9619445B1 (en) | Conversion of content to formats suitable for digital distributions thereof | |
CN117952203A (zh) | 一种知识库构建方法、视频自动化生产方法和软件产品 | |
CN104978325A (zh) | 一种网页处理方法、装置及用户终端 | |
CN112418875B (zh) | 跨平台税务智能客服语料迁移方法及装置 | |
CN115858685B (zh) | 需求文件的在线同步方法和装置、终端、可读存储介质 | |
CN101661277B (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 |