CN114265916A - 文档目录的生成方法、装置、终端设备及存储介质 - Google Patents
文档目录的生成方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN114265916A CN114265916A CN202111593879.1A CN202111593879A CN114265916A CN 114265916 A CN114265916 A CN 114265916A CN 202111593879 A CN202111593879 A CN 202111593879A CN 114265916 A CN114265916 A CN 114265916A
- Authority
- CN
- China
- Prior art keywords
- node
- directory
- document
- tree
- nodes
- 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 65
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001376 precipitating effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种文档目录的生成方法、装置、终端设备及存储介质。该方法包括:从页面读取文本文档;将所述文本文档转化为语法树;对所述语法树的节点进行解构,得到文档目录。本发明解决了文档目录更新滞后的问题,实时更新文档目录。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种文档目录的生成方法、装置、终端设备及存储介质。
背景技术
为了快速查阅文档的内容,文档需要具有详细的目录。然而,当用户在编写文档的时候,更愿意把精力放在文档实质内容上,而不是花时间为文档编排一个详细的目录。
现有的应用系统选择将文档目录存储在文档数据库中,每次读取文档的同时将目录结构一并读取出来,然后整体显示在网页内容中。但是这种文档目录显示方法在一些实时编辑场景的效果不好,每次用户编辑输入时,都需要额外的接口请求开销,导致文档目录的更新滞后。
发明内容
本发明实施例的主要目的在于提供一种传统文档目录的生成方法、装置、终端设备及存储介质,旨在解决文档目录更新滞后的问题,实时更新文档目录。
为实现上述目的,本发明实施例提供一种传统文档目录的生成方法,所述文档目录的生成方法应用于页面,所述传统文档目录的生成方法包括:
从所述页面读取文本文档;
将所述文本文档转化为语法树;
对所述语法树的节点进行解构,得到文档目录。
可选地,所述将所述文本文档转化为语法树的步骤包括:
将所述文本文档转化为超文本标记语言HTML文档;
将所述HTML文档转化为所述语法树,并对所述语法树赋予标签。
可选地,所述对所述语法树的节点进行解构,得到文档目录的步骤之前包括:
对所述语法树的节点进行遍历,得到目录对象;
对所述目录对象进行遍历解构,得到所述文档目录。
可选地,所述对所述语法树的节点进行遍历,得到目录对象的步骤包括:
对所述语法树赋予标签;
读取所述语法树的节点并判断所述节点是否为叶子节点;
若所述节点是叶子节点,则判断所述节点的标签是否为预设字母开头;
若所述节点的标签不是预设字母开头,则读取所述节点的兄弟节点;
若所述节点的标签是预设字母开头,则将该节点作为所述目录对象。
可选地,所述读取所述语法树的节点并判断所述节点是否为叶子节点的步骤之后包括:
若所述节点不是叶子节点,则确定所述节点为子树;
读取所述子树的节点,作为子树节点,并判断所述子树节点是否为叶子节点;
若所述子树节点是叶子节点,则判断所述子树节点的标签是否为预设字母开头;
若所述子树节点的标签不是预设字母开头,则读取所述子树节点的兄弟节点;
若所述子树节点的标签是预设字母开头,则将该子树节点作为所述目录对象。
可选地,所述若所述节点的标签不是预设字母开头,则读取所述节点的兄弟节点的步骤之后包括:
若所述兄弟节点是树节点,则返回执行步骤:读取所述语法树的节点并判断所述节点是否为叶子节点;
若所述兄弟节点不是树节点,则丢弃所述兄弟节点。
可选地,所述对所述语法树的节点进行遍历,得到目录对象的步骤之前包括:
创建目录树寄存器;
所述若所述节点的标签是预设字母开头,则将该节点作为所述目录对象的步骤包括:
若所述节点的标签是预设字母开头,则将该节点作为所述节点对象,并存储于所述目录树寄存器。
可选地,所述对所述目录对象进行遍历解构,得到所述文档目录的步骤包括:
对所述目录树寄存器的目录对象进行组装,得到目录树;
对所述目录树进行遍历解构,得到所述文档目录。
此外,为实现上述目的,本发明还提供一种文档目录的生成装置,所述系统包括:
文档读取模块,用于从所述页面读取文本文档;
文档转化模块,用于将所述文本文档转化为语法树;
遍历解构模块,用于对所述语法树的节点进行解构,得到文档目录。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文档目录的生成方法,所述文档目录的生成的程序被所述处理器执行时实现如上所述的文档目录的生成方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有文档目录的生成的程序,所述文档目录的生成的程序被处理器执行时实现如上所述的文档目录的生成方法的步骤。
本发明实施例提出的文档目录的生成方法、装置、终端设备及存储介质,该方法包括:从页面读取文本文档;将所述文本文档转化为语法树;对所述语法树的节点进行解构,得到文档目录。本发明解决了文档目录更新滞后的问题,自动读取文档,实时更新文档目录。
附图说明
图1为本发明文档目录的生成装置所属终端设备的功能模块示意图;
图2为本发明文档目录的生成方法第一实施例的流程示意图;
图3为本发明文档目录的生成方法第二实施例的流程示意图;
图4为本发明文档目录的生成方法第三实施例的流程示意图;
图5为本发明文档目录的生成系统的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:从页面读取文本文档;将所述文本文档转化为语法树;对所述语法树的节点进行解构,得到文档目录。本发明解决了文档目录更新滞后的问题,自动实时读取文档,实时更新文档目录。
本发明实施例涉及的技术术语:
Hast:超文本抽像语法树,Hast将HTML表示为抽象语法树的规范。
WYSIWYG:所见即所得,WYSIWYG指的是一种用户界面,可以让用户直接编辑和操作文档、页面或文件的外观和内容。
HTML:HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签。通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。
目录树:在任何一个名字空间中,目录树是指由容器和对象构成的层次结构。树的叶子、节点往往是对象,树的非叶子节点是容器。目录树表达了对象的连接方式,也显示了从一个对象到另一个对象的路径。在活动目录中,目录树是基本的结构,从每一个容器作为起点,层层深入,都可以构成一棵子树。一个简单的目录可以构成一棵树,一个计算机网络或者一个域也可以构成一棵树。“目录树”也就是一种“路径关系”。
Javascript:JavaScript(简称“JS”),是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
Dom:(Document Object Model,文档对象模型),是处理可扩展置标语言的标准编程接口。它是一种与平台和语言无关的应用程序接口(API),它可以动态地访问程序和脚本,更新其内容、结构和www文档的风格(HTML和XML文档是通过说明部分定义的)。文档可以进一步被处理,处理的结果可以加入到当前的页面。
JAVA:Java是一门面向对象编程语言,作为静态面向对象编程语言的代表,Java语言具有功能强大和简单易用两个特征。
C#:C#包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的。
遍历:遍历(Traversal),是指沿着某条搜索路线,依次对树(或图)中每个节点均做一次访问。访问结点所做的操作依赖于具体的应用问题,具体的访问操作可能是检查节点的值、更新节点的值等。不同的遍历方式,其访问节点的顺序是不一样的。
递归:程序调用自身的编程技巧称为递归(recursion)。递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
本发明实施例考虑到,现有相关方案中,给应用系统新增了一个知识库文档的模块,主要用于沉淀业务日常的知识、经验。用户在编写文档的时候,更愿意把精力放在文档实质内容上,而不是花时间为文档编排一个详细的目录,但是一个详细的目录可以方便我们对文档进行查阅。
一般类似的知识库文档会分章节、目录对内容进行有效组织。通行的文档目录方法会将文档目录存储在文档数据库中,每次读取文档的同时将目录结构一并读取出来,然后整体显示在网页内容中;使用后台编程语言,调用相关文档格式的软件开发包进行解析并生成目录,在文档显示在页面的时候,同时将生成的目录打印在页面中。
这种方法存在一些缺点,具体如下:
(1)在一些实时编辑场景效果不好,每次用户编辑输入,都需要额外的接口请求开销;
(2)文档目录需要专门人工维护,效率低下;
(3)文档内容更新会导致文档目录更新滞后。
因此,本发明提供一种解决方案,自动读取用户编写的文档,然后再从文档中自动抽取、编排出完整的文档目录。
具体地,参照图1,图1是本发明文档目录的生成装置所属终端设备的功能模块示意图。该文档目录的生成装置可以为独立于终端设备的、能够进行图片处理、网络模型训练的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
在本实施例中,该文档目录的生成装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。
存储器130中存储有操作方法以及文档目录的生成程序;输出模块110可为显示屏等。通信模块140可以包括WIFI模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
其中,存储器130中的文档目录的生成程序被处理器执行时实现以下步骤:
从所述页面读取文本文档;
将所述文本文档转化为语法树;
对所述语法树的节点进行解构,得到文档目录。
进一步地,存储器130中的文档目录的生成程序被处理器执行时还实现以下步骤:
将所述文本文档转化为超文本标记语言HTML文档;
将所述HTML文档转化为所述语法树。
进一步地,存储器130中的文档目录的生成程序被处理器执行时还实现以下步骤:
对所述语法树的节点进行遍历,得到目录对象;
所述对所述语法树的节点进行解构,得到文档目录的步骤包括:
对所述目录对象进行遍历解构,得到所述文档目录。
进一步地,存储器130中的文档目录的生成程序被处理器执行时还实现以下步骤:
对所述语法树赋予标签;
读取所述语法树的节点并判断所述节点是否为叶子节点;
若所述节点是叶子节点,则判断所述节点的标签是否为预设字母开头;
若所述节点的标签不是预设字母开头,则读取所述节点的兄弟节点;
若所述节点的标签是预设字母开头,则将该节点作为所述目录对象。
进一步地,存储器130中的文档目录的生成程序被处理器执行时还实现以下步骤:
若所述节点不是叶子节点,则确定所述节点为子树;
读取所述子树的节点,作为子树节点,并判断所述子树节点是否为叶子节点;
若所述子树节点是叶子节点,则判断所述子树节点的标签是否为预设字母开头;
若所述子树节点的标签不是预设字母开头,则读取所述子树节点的兄弟节点;
若所述子树节点的标签是预设字母开头,则将该子树节点作为所述目录对象。
进一步地,存储器130中的文档目录的生成程序被处理器执行时还实现以下步骤:
若所述兄弟节点是树节点,则返回执行步骤:读取所述语法树的节点并判断所述节点是否为叶子节点;
若所述兄弟节点不是树节点,则丢弃所述兄弟节点。
进一步地,存储器130中的文档目录的生成程序被处理器执行时还实现以下步骤:
创建目录树寄存器;
所述若所述节点的标签是预设字母开头,则将该节点作为所述目录对象的步骤包括:
若所述节点的标签是预设字母开头,则将该节点作为所述节点对象,并存储于所述目录树寄存器。
进一步地,存储器130中的文档目录的生成程序被处理器执行时还实现以下步骤:
对所述目录树寄存器的目录对象进行组装,得到目录树;
对所述目录树进行遍历解构,得到所述文档目录。
本实施例通过上述方案,具体通过从页面读取文本文档;将所述文本文档转化为语法树;对所述语法树的节点进行解构,得到文档目录。本发明解决了文档目录更新滞后的问题,文档内容更新后,不需要人工维护,会立即刷新文档目录结构,适合WYSIWYG编辑场景。
基于上述终端设备架构但不限于上述架构,提出本发明方法实施例。
参照图2,图2为本发明文档目录的生成方法第一实施例的流程示意图。所述文档目录的生成方法包括:
步骤S101,从所述页面读取文本文档。
本实施例方法的执行主体可以是一种文档目录的生成装置,也可以是一种文档目录的生成终端设备或服务器,本实施例以文档目录的生成装置进行举例,该文档目录的生成装置可以集成在具有数据处理功能的智能手机、平板电脑等终端设备上。
本实施例方案主要实现实时获取文档信息,并根据文档的内容自动对文档目录进行更新。
其中,本实施例的文档目录的生成装置可以应用在前端或后端,本实施例以文档目录的生成装置应用在前端进行说明。
进一步地,文档目录的生成装置在前端的网页端,应用Javascript与DOM等脚本技术完成,而不需要后台程序逻辑配合,并且业务逻辑比较轻量化,生成效率也很高,适合应用在一些实时编辑、WYSIWYG的编辑文档场景。
为了生成文档目录,需要读取文本文档,具体方案如下:
作为一种实施方式,在本实施例中,在前端读取文本文档;其中,文本文档可以是实时更新的文本文档。
更为具体的,在前端的文档数据库中查找并读取文本文档;其中,文本文档可以是实时更新的文本文档;可以逐行读取,也可以逐列读取;可以通过C语言、C#、JAVA等方式读取文本文档。
步骤S102,将所述文本文档转化为语法树。
作为一种实施方式,在本实施例中,首先,将读取的文本文档转化为网页可识别的HTML文档,其中,读取的文档包括纯文本的文档。
具体的,可应用开源算法,开源数据包将读取的文本文档转化为网页可识别的HTML文档。
由此,将用户输入的普通文本文档,转化成网页可识别的HTML文档,为后Hast转化做准备,其中,HTML文档是一种树状结构的表达。
其次,将HTML文档转化为超文本抽象语法树(HAST)。
具体地,将HTML文档转化为超文本抽象语法树(HAST),对HTML这种类树状结构的文档进行更进一步语义抽像,将其转成真正的树形对象,并对HAST树的节点生成标签,方便进一步对该树对象进行遍历抽取。
其中,根据HAST树的节点的类型为其赋予标签,标签包括h,h代表该节点为标题,为后续生成文档目录做准备。
再次,定义(设置)存储装置,为后续存储目录对象作准备。
具体的,定义目录树寄存器,为后续存储目录对象作准备。
步骤S103,对所述语法树的节点进行解构,得到文档目录。
作为一种实施方式,在本实施例中,基于预设算法对Hast的节点进行遍历和遍历解构(反向遍历),生成最终可被网页识别的文档目录;其中,预设算法包括递归算法。
进一步地,HAST的构造及解构技术是一种能够直接作用于前端网页的技术。因此该技术主要有以下两大特征:
(1)应用程序开销非常小,不需要花费额外的网络开销;
(2)构造、解构效率非常高,非常适用于所见即所得的文档编辑场景。
作为另一种实施方式,将目录树按照递归的方式解构为不同的树单元,每个树单元包括一个根节点和一个子树组;
进一步地,根据每个目录树树单元内的根节点与子树组之间的关系以及子树组内部每个子树之间的关系,确定每个目录树单元的布局,其中,根节点与子树组之间的关系为父子关系,子树组内部每个子树之间的关系为兄弟关系。
进一步地,根据目录树的布局将目录树转换为HTML目录标签,作为文档目录。
作为再一种实施方式,将每个树单元内的根节点与子树组之间的关系以及子树组内部每个子树之间的关系按照坐标轴进行解构,包括:
将根节点与子树组之间的关系在每个坐标轴上解构为包含、并置以及被包含三类关系;
将子树组内部每个子树之间的关系在每个坐标轴上解构为对齐和平铺两类关系。
进一步地,根据每个树之间的关系以及根节点与子数组之间的关系,将目录树转换为HTML目录标签,作为文档目录。
由此,HAST不需要人工维护,自动获取文档信息,自动解析文档内容,实时更新文档目录。
本实施例通过上述方案,具体通过从页面读取文本文档;将所述文本文档转化为语法树;对所述语法树的节点进行解构,得到文档目录。本发明解决了文档目录更新滞后的问题,可以直接在前端网页端,应用Javascript与DOM等脚本技术生成文档目录,而不需要后台程序逻辑配合;不需要人工维护,自动获取文档信息,自动解析文档内容,实时更新文档目录。
参照图3,图3为本发明文档目录的生成方法第二实施例的流程示意图。基于上述图2所示的实施例,在本实施例中,步骤S103:基于预设算法对所述语法树进行解构,得到文档目录包括:
步骤S1031,对所述语法树的节点进行遍历,得到目录对象。
作为一种实施方式,在本实施例中,基于递归算法,读取HAST的节点,然后判断该节点是否为叶子节点。
其中,该节点的类型包括叶子节点和树节点,若该节点为叶子节点,则可能包含期望得到的标题;若该节点为树节点,则需对树再次进行判断。
由此,通过递归算法对HAST的节点进行遍历,有效把控HAST的节点的遍历情况,从而实时更新文档目录。
进一步地,若节点不是叶子节点,则该节点为子树,对该子树进行递归。
具体的,读取该子树的节点,然后判断子树节点的类型。
若节点/子树节点是叶子节点,则进一步判断该节点/子树节点的标签是否为预设字母开头,其中,只有具有期望标题的叶子节点才有预设字母,预设字母包括h等字母。
若节点/子树节点的标签是h开头,则将该节点/子树节点作为目录对象,并存储在预先准备好的目录树寄存器中。
若节点/子树节点的标签不是h开头,则继续读取其兄弟节点,并判断兄弟节点是否为树。
如果兄弟节点为树,则该节点可能含有叶子,若节点不是树,则该节点不具有期望得到的标题。
进一步地,若该节点是子树,则基于预设算法返回执行:读取HAST的节点,然后判断该节点的类型。
若该节点不是子树,则丢弃该节点。
步骤S1032,对所述目录对象进行遍历解构,得到所述文档目录;
作为一种实施方式,在本实施例中,读取目录树寄存器的目录对象并进行组装,得到目录树。
更为具体的,读取目录树寄存器的目录对象,并依据目录对象的层级进行组装,得到目录树。
其中,目录对象的层级即为标题的等级,例如,标题的等级包括一级标题、二级标题、三级标题等;根据标题的等级对标题进行排序组装,得到目录树,即:依据目录对象的层级进行组装,得到目录树。
进一步地,对目录树进行遍历解构,得到HTML目录标签,作为文档目录。
作为另一种实施方式,将目录树按照递归的方式解构为不同的树单元,每个树单元包括一个根节点和一个子树组;
进一步地,根据每个目录树树单元内的根节点与子树组之间的关系以及子树组内部每个子树之间的关系,确定每个目录树单元的布局,其中,根节点与子树组之间的关系为父子关系,子树组内部每个子树之间的关系为兄弟关系。
进一步地,根据目录树的布局将目录树转换为HTML目录标签,作为文档目录。
作为再一种实施方式,将每个树单元内的根节点与子树组之间的关系以及子树组内部每个子树之间的关系按照坐标轴进行解构,包括:
将根节点与子树组之间的关系在每个坐标轴上解构为包含、并置以及被包含三类关系;
将子树组内部每个子树之间的关系在每个坐标轴上解构为对齐和平铺两类关系。
进一步地,根据每个树之间的关系以及根节点与子数组之间的关系,将目录树转换为HTML目录标签,作为文档目录。
由此,基于递归算法对HAST的节点进行提取,从而得到文档目录,减少了操作步骤,提高文档目录的准确性。
本实施例通过上述方案,具体通过从页面读取文本文档;将所述文本文档转化为语法树;对所述语法树的节点进行解构,得到文档目录。本发明解决了文档目录更新滞后的问题,不需要人工维护,自动获取文档信息,自动解析文档内容,实时更新文档目录;并且,基于递归算法对HAST的节点进行提取,从而得到文档目录,减少了操作步骤,提高文档目录的准确性。
参照图4,图4为本发明文档目录的生成方法第三实施例的流程示意图。
作为一种实施方式,在本实施例中,读取用户输入的普通文本文档。
具体的,在前端的文档数据库中查找并读取文本文档;其中,文档信息可以是实时更新的文本文档。
具体的,在前端的文档数据库中查找并读取文本文档;其中,文本文档可以是实时更新的文本文档;可以逐行读取,也可以逐列读取;可以通过C语言、C#、JAVA等方式读取文本文档。
进一步地,将读取的文本文档转成HTML文档。
将读取的文档通过转化为网页可识别的HTML文档,其中,读取的文本文档包括纯文本的文档。
具体的,可应用开源算法,开源数据包将读取的文本文档转化为网页可识别的HTML文档。
由此,将用户输入的普通文本文档,转化成网页可识别的HTML文档,为后续Hast转化做准备,其中,HTML文档是一种树状结构的表达。
进一步地,将HTML文档转成HAST结构。
将HTML文档转化为超文本抽象语法树(HAST),并对HTML这种类树状结构的文档进行更进一步语义抽像,将其转成真正的树形对象,并对HAST树的节点赋予标签,为后续生成文档目录做准备。
其中,根据HAST树的节点的类型为其赋予标签,标签为h,代表该节点为标题,为后续生成文档目录做准备。
进一步地,定义(设置)存储装置,为后续存储目录对象作准备。
具体的,定义寄存目录树列表,为后续存储目录对象作准备。
进一步地,读取HAST的节点并判断节点的类型。
基于递归算法,读取HAST的节点,然后判断该节点是否为叶子节点,其中,该节点的类型包括叶子节点和树节点,若该节点为叶子节点,则可能包含期望得到的标题;若该节点不是叶子节点,则需对该节点再次进行判断。
由此,通过递归算法对HAST的节点进行遍历,有效把控HAST的节点的遍历情况,从而实时更新文档目录。
进一步地,若该节点不是叶子节点,则该节点为子树节点,对该子树节点进行递归。
若该节点为叶子节点,则进一步判断是否有h标签,只有具有期望标题的叶子节点才有预设字母h。
若该节点有h标签,则读取该节点,并将该节点添加到目录树存储器;
若该节点无h标签,则读取该节点的兄弟节点。
如果该节点的兄弟节点为树,则该节点可能含有叶子节点,如果含有叶子节点,那么叶子节点可能包含h标签,该节点可能具有期望得到的标题;若节点不是树,则该节点不具有期望得到的标题。
进一步地,判断兄弟节点是否为子树。
若兄弟节点是子树,则返回执行:读取HAST的节点并判断节点的类型;
若兄弟节点不是子树,则丢弃该兄弟节点。
进一步地,读取寄存目录树列表的目录对象,并依据目录对象的层级进行组装,得到目录树。
进一步地,对目录树进行遍历解构,得到HTML目录标签,并判断寄存目录树列表是否为空。
若寄存目录树列表为空,则返回执行:对目录树进行遍历解构。
若寄存目录树列表不为空,则将得到的HTML目录标签作为文档目录。
作为另一种实施方式,将目录树按照递归的方式解构为不同的树单元,每个树单元包括一个根节点和一个子树组;
进一步地,根据每个目录树树单元内的根节点与子树组之间的关系以及子树组内部每个子树之间的关系,确定每个目录树单元的布局,其中,根节点与子树组之间的关系为父子关系,子树组内部每个子树之间的关系为兄弟关系。
进一步地,根据目录树的布局将目录树转换为HTML目录标签,作为文档目录。
作为再一种实施方式,将每个树单元内的根节点与子树组之间的关系以及子树组内部每个子树之间的关系按照坐标轴进行解构,包括:
将根节点与子树组之间的关系在每个坐标轴上解构为包含、并置以及被包含三类关系;
将子树组内部每个子树之间的关系在每个坐标轴上解构为对齐和平铺两类关系。
进一步地,根据每个树之间的关系以及根节点与子数组之间的关系,将目录树转换为HTML目录标签,作为文档目录。
由此,基于递归算法对HAST的节点进行提取,从而得到文档目录,减少了操作步骤,提高文档目录的准确性。
本实施例通过上述方案,具体通过从页面读取文本文档;将所述文本文档转化为语法树;对所述语法树的节点进行解构,得到文档目录。本发明解决了文档目录更新滞后的问题,不需要人工维护,自动获取文档信息,自动解析文档内容,实时更新文档目录;并且,基于递归算法对HAST的节点进行提取,从而得到文档目录,减少了操作步骤,提高文档目录的准确性。
参照图5,图5为本发明文档目录的生成系统的功能模块示意图,所述文档目录的生成装置包括:
文档读取模块10,用于从所述页面读取文本文档;
文档转化模块20,用于将所述文本文档转化为语法树;
遍历解构模块30,用于对所述语法树的节点进行解构,得到文档目录。
本实施例实现文档目录的生成的原理及实施过程,请参照上述各实施例,在此不再赘述。
此外,本发明实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文档目录的生成程序,所述文档目录的生成程序被所述处理器执行时实现如上所述的文档目录的生成方法的步骤。
由于本文档目录的生成程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有文档目录的生成程序,所述文档目录的生成程序被处理器执行时实现如上所述的文档目录的生成方法的步骤。
由于本文档目录的生成程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
相比现有技术,本发明提供的一种文档目录的生成方法、装置、终端设备及存储介质,通过从页面读取文本文档;将所述文本文档转化为语法树;对所述语法树的节点进行解构,得到文档目录。本发明解决了文档目录更新滞后的问题,实时更新文档目录。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本发明每个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (11)
1.一种文档目录的生成方法,其特征在于,所述文档目录的生成方法应用于页面,所述方法包括如下步骤:
从所述页面读取文本文档;
将所述文本文档转化为语法树;
对所述语法树的节点进行解构,得到文档目录。
2.根据权利要求1所述的文档目录的生成方法,其特征在于,所述将所述文本文档转化为语法树的步骤包括:
将所述文本文档转化为超文本标记语言HTML文档;
将所述HTML文档转化为所述语法树。
3.根据权利要求1所述的文档目录的生成方法,其特征在于,所述对所述语法树的节点进行解构,得到文档目录的步骤之前包括:
对所述语法树的节点进行遍历,得到目录对象;
所述对所述语法树的节点进行解构,得到文档目录的步骤包括:
对所述目录对象进行遍历解构,得到所述文档目录。
4.根据权利要求3所述的文档目录的生成方法,其特征在于,所述对所述语法树的节点进行遍历,得到目录对象的步骤包括:
对所述语法树赋予标签;
读取所述语法树的节点并判断所述节点是否为叶子节点;
若所述节点是叶子节点,则判断所述节点的标签是否为预设字母开头;
若所述节点的标签不是预设字母开头,则读取所述节点的兄弟节点;
若所述节点的标签是预设字母开头,则将该节点作为所述目录对象。
5.根据权利要求4所述的文档目录的生成方法,其特征在于,所述读取所述语法树的节点并判断所述节点是否为叶子节点的步骤之后包括:
若所述节点不是叶子节点,则确定所述节点为子树;
读取所述子树的节点,作为子树节点,并判断所述子树节点是否为叶子节点;
所述若所述节点是叶子节点,则判断所述节点的标签是否为预设字母开头的步骤包括:
若所述子树节点是叶子节点,则判断所述子树节点的标签是否为预设字母开头;
所述若所述节点的标签不是预设字母开头,则读取所述节点的兄弟节点的步骤包括:
若所述子树节点的标签不是预设字母开头,则读取所述子树节点的兄弟节点;
所述若所述节点的标签是预设字母开头,则将该节点作为所述目录对象的步骤包括:
若所述子树节点的标签是预设字母开头,则将该子树节点作为所述目录对象。
6.根据权利要求4所述的文档目录的生成方法,其特征在于,所述若所述节点的标签不是预设字母开头,则读取所述节点的兄弟节点的步骤之后包括:
若所述兄弟节点是树节点,则返回执行步骤:读取所述语法树的节点并判断所述节点是否为叶子节点;
若所述兄弟节点不是树节点,则丢弃所述兄弟节点。
7.根据权利要求4所述的文档目录的生成方法,其特征在于,所述对所述语法树的节点进行遍历,得到目录对象的步骤之前包括:
创建目录树寄存器;
所述若所述节点的标签是预设字母开头,则将该节点作为所述目录对象的步骤包括:
若所述节点的标签是预设字母开头,则将该节点作为所述节点对象,并存储于所述目录树寄存器。
8.根据权利要求3所述的文档目录的生成方法,其特征在于,所述对所述目录对象进行遍历解构,得到所述文档目录的步骤包括:
对所述目录树寄存器的目录对象进行组装,得到目录树;
对所述目录树进行遍历解构,得到所述文档目录。
9.一种文档目录的生成装置,其特征在于,所述文档目录的生成装置应用于页面,包括:
文档读取模块,用于从所述页面读取文本文档;
文档转化模块,用于将所述文本文档转化为语法树;
遍历解构模块,用于对所述语法树的节点进行解构,得到文档目录。
10.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文档目录的生成方法,所述文档目录的生成的程序被所述处理器执行时实现如权利要求1-8中任一项所述的文档目录的生成方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有文档目录的生成的程序,所述文档目录的生成的程序被处理器执行时实现如权利要求1-8中任一项所述的文档目录的生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111593879.1A CN114265916A (zh) | 2021-12-23 | 2021-12-23 | 文档目录的生成方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111593879.1A CN114265916A (zh) | 2021-12-23 | 2021-12-23 | 文档目录的生成方法、装置、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114265916A true CN114265916A (zh) | 2022-04-01 |
Family
ID=80829422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111593879.1A Pending CN114265916A (zh) | 2021-12-23 | 2021-12-23 | 文档目录的生成方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114265916A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230620A1 (en) * | 2003-05-16 | 2004-11-18 | Chung-I Lee | System and method for electronic document control |
WO2011140427A2 (en) * | 2010-05-07 | 2011-11-10 | Google Inc. | Caching electronic document resources in a client device having an electronic resource database |
CN104699706A (zh) * | 2013-12-06 | 2015-06-10 | 中国移动通信集团海南有限公司 | 目录树的生成方法、装置及系统 |
US20210191993A1 (en) * | 2018-09-29 | 2021-06-24 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Processing Method for Structured Data, Storage Medium and Electronic Device |
CN113486635A (zh) * | 2021-07-23 | 2021-10-08 | 中国建设银行股份有限公司 | 一种文档编辑方法、装置、电子设备及计算机可读介质 |
CN113642320A (zh) * | 2020-04-27 | 2021-11-12 | 北京庖丁科技有限公司 | 文档目录结构的提取方法、装置、设备和介质 |
CN113779235A (zh) * | 2021-09-13 | 2021-12-10 | 北京市律典通科技有限公司 | 一种Word文档大纲识别处理方法及装置 |
-
2021
- 2021-12-23 CN CN202111593879.1A patent/CN114265916A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230620A1 (en) * | 2003-05-16 | 2004-11-18 | Chung-I Lee | System and method for electronic document control |
WO2011140427A2 (en) * | 2010-05-07 | 2011-11-10 | Google Inc. | Caching electronic document resources in a client device having an electronic resource database |
CN104699706A (zh) * | 2013-12-06 | 2015-06-10 | 中国移动通信集团海南有限公司 | 目录树的生成方法、装置及系统 |
US20210191993A1 (en) * | 2018-09-29 | 2021-06-24 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Processing Method for Structured Data, Storage Medium and Electronic Device |
CN113642320A (zh) * | 2020-04-27 | 2021-11-12 | 北京庖丁科技有限公司 | 文档目录结构的提取方法、装置、设备和介质 |
CN113486635A (zh) * | 2021-07-23 | 2021-10-08 | 中国建设银行股份有限公司 | 一种文档编辑方法、装置、电子设备及计算机可读介质 |
CN113779235A (zh) * | 2021-09-13 | 2021-12-10 | 北京市律典通科技有限公司 | 一种Word文档大纲识别处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109508191B (zh) | 一种代码生成方法及系统 | |
WO2018082562A1 (zh) | 页面数据编译的方法、页面渲染的方法、装置及存储介质 | |
US8346803B2 (en) | Dynamic generation of target files from template files and tracking of the processing of target files | |
US8381095B1 (en) | Automated document revision markup and change control | |
US7836119B2 (en) | Distributed execution model for cross-organizational declarative web applications | |
US20090210780A1 (en) | Document processing and management approach to creating a new document in a mark up language environment using new fragment and new scheme | |
CN107391153B (zh) | 一种基于Spring与MyBatis框架整合的代码生成方法及装置 | |
CN111045678A (zh) | 页面执行动态代码的方法、装置、设备及存储介质 | |
CN101714133A (zh) | 一种基于web的数学公式编辑系统及方法 | |
CN106372130B (zh) | 一种静态资源管理方法 | |
US20020002566A1 (en) | Transfromation of marked up documents using a base architecture | |
CN111913739B (zh) | 一种服务接口原语定义方法和系统 | |
CN108170435A (zh) | 一种源代码转换方法、装置及设备 | |
CN116955674B (zh) | 一种通过LLM生成图数据库语句的方法及web装置 | |
CN115202626A (zh) | 一种支持多技术栈组件的低代码前端开发方法 | |
CN111913693A (zh) | 一种服务接口子类模板确定方法与系统 | |
CN112527291A (zh) | 网页生成方法、装置、电子设备及存储介质 | |
CN110377371B (zh) | 一种基于Web标签的样式表系统管理方法 | |
CN114021042A (zh) | 网页内容的提取方法、装置、计算机设备和存储介质 | |
CN111966940B (zh) | 一种基于用户请求序列的目标数据定位方法和装置 | |
JP2006127235A (ja) | 構造化文書管理システム、構造化文書管理方法及びプログラム | |
CN114265916A (zh) | 文档目录的生成方法、装置、终端设备及存储介质 | |
Nguyen | Model-based version and configuration management for a web engineering lifecycle | |
CN114218515A (zh) | 一种基于内容分割的Web数字对象提取方法及系统 | |
CN114238807A (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 |