CN115577683B - 一种html富文本内容转换方法、装置、设备和介质 - Google Patents

一种html富文本内容转换方法、装置、设备和介质 Download PDF

Info

Publication number
CN115577683B
CN115577683B CN202211473268.8A CN202211473268A CN115577683B CN 115577683 B CN115577683 B CN 115577683B CN 202211473268 A CN202211473268 A CN 202211473268A CN 115577683 B CN115577683 B CN 115577683B
Authority
CN
China
Prior art keywords
unit
tag
editing
text content
label
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
Application number
CN202211473268.8A
Other languages
English (en)
Other versions
CN115577683A (zh
Inventor
卢遥
毛新军
宋万盛
陈璟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202211473268.8A priority Critical patent/CN115577683B/zh
Publication of CN115577683A publication Critical patent/CN115577683A/zh
Application granted granted Critical
Publication of CN115577683B publication Critical patent/CN115577683B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Document Processing Apparatus (AREA)

Abstract

本申请涉及一种HTML富文本内容转换方法、装置、设备和介质。方法包括:根据预先设置第一规则、第二规则和第三规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行处理,得到两组文本内容单元数组和富文本标签数据,将两组文本内容单元数组进行对比计算,得到编辑前后文本内容单元数组的差异;根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量;利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据;根据编辑后的标记标签数据与编辑后的文本内容单元数组、富文本标签数据构建转换后的富文本内容。采用本方法能够避免标记数据丢失。

Description

一种HTML富文本内容转换方法、装置、设备和介质
技术领域
本申请涉及数据处理技术领域,特别是涉及一种HTML富文本内容转换方法、装置、计算机设备和存储介质。
背景技术
HTML是一种用于定义内容结构的标记语言,一对标签可以为一段文字或者一张图片添加超链接,将文字设置为斜体,改变字号,等等。目前互联网上所有在浏览器中显示的富文本内容都是基于HTML渲染的。
一些在线富文本的“划线标记”、“划线评论”之类内容标记功能,都是基于HTML标签实现的。其每条标记数据都在富文本内容中添加了一组不影响富文本结构与内容渲染的标签,这些标记标签将与富文本内容一同保存。因为标记标签隐形存在于富文本内容中,若在编辑富文本内容时,将包含标记标签的内容删除后在相同的位置重新输入相同的文本内容,则会因为标记标签的丢失而导致标记数据丢失。
发明内容
基于此,有必要针对上述技术问题,提供一种能够避免标记数据丢失的HTML富文本内容转换方法、装置、计算机设备和存储介质。
一种HTML富文本内容转换方法,所述方法包括:
获取富文本内容;富文本内容包括富文本编辑前输出的HTML文档和编辑后输出的HTML文档;编辑前输出的HTML文档包括标记标签数据;
根据预先设置第一规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组;
根据预先设置的第二规则对编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组;
根据预先设置的第三规则对两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据;
将两组文本内容单元数组进行对比计算,得到编辑前后文本内容单元数组的差异;
根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量;
利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据;
根据编辑后的标记标签数据与编辑后的文本内容单元数组、富文本标签数据构建转换后的富文本内容。
在其中一个实施例中,根据预先设置第一规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组,包括:
将编辑前输出的HTML文档和编辑后输出的HTML文档视为以字符单元、字符实体单元、标签单元三种最小单元组成的文本,其中字符实体单元以“&”字符开始、“;”字符结束;标签单元以“<”字符开始、“>”字符结束,标签单元又分为标签开始单元和标签结束单元,若“<”字符后紧接“/”字符,则是标签结束单元,否则是标签开始单元;其余字符为字符单元。
在其中一个实施例中,根据预先设置的第二规则对编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组,包括:
将编辑前的单元数组和编辑后的单元数组中的块级元素标签结束单元与块级元素标签开始单元之间的所有换行符清空,若一个标签单元为标签开始单元,当其是块级元素标签、在其他标签之内、并且上一个单元不是换行符单元时,在这个标签单元之前插入一个换行符单元;若一个标签单元为标签结束单元并且是块级元素标签时,在这个标签单元之后插入一个换行符单元,得到两个格式化后的单元数组;块级元素标签表示在浏览器渲染中独占一行的标签。
在其中一个实施例中,根据预先设置的第三规则对两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据,包括:
遍历两个格式化后的单元数组,将单元数组中的文本内容单元提取出来组成文本内容单元数组;文本内容单元由字符单元、字符实体单元和图片标签单元组成;
遍历两个格式化后的单元数组时,记录在标签层级发生变化时是第几个文本内容单元,得到标签层级变化位置并记录此时的标签层级内容,再结合文本内容单元将标签层级内容转换回富文本内容;标签层级变化位置与标签层级内容的数据为富文本标签数据。
在其中一个实施例中,获取富文本内容的过程包括:
利用浏览器或富文本编辑器获取富文本内容,标记数据是通过Web API获取用户在浏览器中选中并标记的选取范围数据,并通过第一规则、第二规则、第三规则确定范围数据在富文本内容的文本内容单元数组中的位置,即标记范围是从富文本中的第几个文本内容单元开始,第几个文本单元结束。
在其中一个实施例中,根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量,包括:
根据差分算法对富文本编辑后的文本内容单元数组和富文本编辑的文本内容单元数组进行计算,得到最小编辑脚本;最小编辑脚本包括哪些位置的单元被删除了,哪些位置的单元被修改了,哪些位置新增了单元;
根据最小编辑脚本计算得到富文本编辑前的每一个文本内容单元在编辑后的偏移量。
在其中一个实施例中,利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据,包括:
将富文本编辑前的每一个文本单元在编辑后的偏移量应用到剩余的标记标签数据中,得编辑后的标记标签数据;剩余的标记标签数据表示在编辑过程中去除被删除部分的数据后剩余的标记标签数据。
一种HTML富文本内容转换装置,所述装置包括:
富文本内容获取模块,用于获取富文本内容;富文本内容包括富文本编辑前输出的HTML文档和编辑后输出的HTML文档;编辑前输出的HTML文档包括标记标签数据;
文档拆解模块,用于根据预先设置第一规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组;
格式化模块,用于根据预先设置的第二规则对编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组;
单元数组处理模块,用于根据预先设置的第三规则对两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据;
偏移量计算模块,用于将两组文本内容单元数组进行对比计算,得到编辑前后文本内容单元数组的差异;根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量。
富文本内容转换模块,用于利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据;根据编辑后的标记标签数据与编辑后的文本内容单元数组、富文本标签数据构建转换后的富文本内容。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
获取富文本内容;富文本内容包括富文本编辑前输出的HTML文档和编辑后输出的HTML文档;编辑前输出的HTML文档包括标记标签数据;
根据预先设置第一规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组;
根据预先设置的第二规则对编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组;
根据预先设置的第三规则对两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据;
将两组文本内容单元数组进行对比计算,得到编辑前后文本内容单元数组的差异;
根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量;
利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据;
根据编辑后的标记标签数据与编辑后的文本内容单元数组、富文本标签数据构建转换后的富文本内容。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取富文本内容;富文本内容包括富文本编辑前输出的HTML文档和编辑后输出的HTML文档;编辑前输出的HTML文档包括标记标签数据;
根据预先设置第一规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组;
根据预先设置的第二规则对编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组;
根据预先设置的第三规则对两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据;
将两组文本内容单元数组进行对比计算,得到编辑前后文本内容单元数组的差异;
根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量;
利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据;
根据编辑后的标记标签数据与编辑后的文本内容单元数组、富文本标签数据构建转换后的富文本内容。
上述一种HTML富文本内容转换方法、装置、计算机设备和存储介质,首先根据预先设置第一规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组,通过对富文本内容进行拆解后,便于后面对单元数组进行格式化和处理,确定标记数据的位置,根据预先设置的第二规则对编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组,在部分特殊标签单元的前后插入换行符字符单元或清除的换行符字符单元来避免浏览器和富文本编辑器对富文本处理方式中可能产生的差异,使得获取的标记标签数据能准确的定位到富文本的文本内容单元数组中,根据预先设置的第三规则对两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据,便于后续进行偏移量的计算和转换后的富文本内容的构建,将两组文本内容单元数组进行对比计算,得到编辑前后文本内容单元数组的差异;根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量,利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据;根据编辑后的标记标签数据与编辑后的文本内容单元数组、富文本标签数据构建转换后的富文本内容,避免了标记数据丢失。
附图说明
图1为一个实施例中一种HTML富文本内容转换方法的流程示意图;
图2为一个实施例中一种HTML富文本内容转换装置的结构框图;
图3为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种HTML富文本内容转换方法,包括以下步骤:
步骤102,获取富文本内容;富文本内容包括富文本编辑前输出的HTML文档和编辑后输出的HTML文档;编辑前输出的HTML文档包括标记标签数据。
步骤104,根据预先设置第一规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组。
将富文本内容视为以字符单元、字符实体单元、标签单元三种最小单元组成的文本。其中字符实体单元以“&”字符开始、“;”字符结束;标签单元以“<”字符开始、“>”字符结束,标签单元又分为标签开始单元和标签结束单元,若“<”字符后紧接“/”字符,则是标签结束单元,否则是标签开始单元;其余字符为字符单元。按照设置第一规则拆解富文本内容后会得到以字符单元、字符实体单元、标签单元组成的数组。数组中的这些单元首尾相连拼接起来就是富文本内容。通过对富文本内容进行拆解后,便于后面对单元数组进行格式化和处理,确定标记数据的位置。
步骤106,根据预先设置的第二规则对编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组。
在浏览器中,即使用于渲染的富文本数据的块级标签之间没有换行符,在渲染时也会默认插入一个换行符。而富文本编辑器在输出富文本内容时,为了美化输出格式,也会有一套自己的换行符插入规则。这些换行符字符单元的差异会导致通过Web API获取的标记标签数据不能准确的定位到富文本的文本内容单元数组中。第二规则处理的方式为:首先清空块级元素标签结束单元与块级元素标签开始单元之间的所有换行符;若一个标签单元为标签开始单元,当其是块级元素标签、在其他标签之内、并且上一个单元不是换行符单元时,在这个标签单元之前插入一个换行符单元;若一个标签单元为标签结束单元并且是块级元素标签时,在这个标签单元之后插入一个换行符单元,使得获取的标记标签数据能准确的定位到富文本的文本内容单元数组中
步骤108,根据预先设置的第三规则对两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据。
将单元数组中的文本内容单元提取出来组成文本内容单元数组。文本内容单元由字符单元、字符实体单元和图片标签单元组成。在遍历单元数组时,每遇到非图片标签的标签单元都代表着此处标签层级发生了变化,因此只需要记录在标签层级发生变化时是第几个文本内容单元,并记录此时的标签层级内容,就可以结合文本内容单元将其转换回富文本内容,通过设置的第三规则对两个格式化后的单元数组进行处理,可以得到两组文本内容单元数组和富文本标签数据,便于后续进行偏移量的计算和转换后的富文本内容的构建。
步骤110,将两组文本内容单元数组进行对比计算,得到编辑前后文本内容单元数组的差异;根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量。
将富文本编辑后输出并处理得到的文本内容单元数组和富文本编辑前输出并处理得到的文本内容单元数组使用差分算法计算得到最小编辑脚本,即哪些位置的单元被删除了,哪些位置的单元被修改了,哪些位置新增了单元。根据最小编辑脚本可以计算得到富文本编辑前的每一个文本内容单元在编辑后的偏移量。
步骤112,利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据;根据编辑后的标记标签数据与编辑后的文本内容单元数组、富文本标签数据构建转换后的富文本内容。
由于文本内容单元数组的最小编辑脚本是根据文本内容单元位置定位的,而标记标签数据中也记录了每一条标记标签的起止位置对应在文本内容单元数组中的位置,因此通过计算可得出每一条标记标签它标记的内容是否已经被删除或一部分被删除。去除被删除部分的数据后,将富文本编辑前的每一个文本单元在编辑后的偏移量应用到剩余的标记标签数据中,可以得标记标签在富文本编辑后输出并处理得到的文本内容单元数组之中的新标记标签数据。
遍历富文本编辑后输出并处理得到的文本内容单元数组时,根据富文本标签数据,在每一个标签层级发生变化的位置与这个前一个位置的标签层级相互取差集,得到这个位置应该插入的标签结束单元和标签开始单元,同时根据后入先出的原则,按顺序插入标签结束单元和标签开始单元。这个位置如果有偏移后的标记标签数据,若是标记标签的开始位置,则最后插入标记标签的开始标签;若是标记标签的结束位置,则最先插入标记标签的结束标签;若当前的标记标签还没有闭合(插入一对开始和结束标签)就遇到了富文本标签层级变化,则最先插入标记标签的结束标签,并且在最后插入标记标签的开始标签。文本单元数组遍历完成后,将得到的新数组进行拼接,就得到了带有标记标签的编辑后的富文本内容。
上述一种HTML富文本内容转换方法中,首先根据预先设置第一规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组,通过对富文本内容进行拆解后,便于后面对单元数组进行格式化和处理,确定标记数据的位置,根据预先设置的第二规则对编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组,在部分特殊标签单元的前后插入换行符字符单元或清除的换行符字符单元来避免浏览器和富文本编辑器对富文本处理方式中可能产生的差异,使得获取的标记标签数据能准确的定位到富文本的文本内容单元数组中,根据预先设置的第三规则对两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据,便于后续进行偏移量的计算和转换后的富文本内容的构建,将两组文本内容单元数组进行对比计算,得到编辑前后文本内容单元数组的差异;根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量,利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据;根据编辑后的标记标签数据与编辑后的文本内容单元数组、富文本标签数据构建转换后的富文本内容,避免了标记数据丢失。
在其中一个实施例中,根据预先设置第一规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组,包括:
将编辑前输出的HTML文档和编辑后输出的HTML文档视为以字符单元、字符实体单元、标签单元三种最小单元组成的文本,其中字符实体单元以“&”字符开始、“;”字符结束;标签单元以“<”字符开始、“>”字符结束,标签单元又分为标签开始单元和标签结束单元,若“<”字符后紧接“/”字符,则是标签结束单元,否则是标签开始单元;其余字符为字符单元。
在具体实施例中,假设富文本内容为:
<p>一二三四五&nbsp;六七八九十</p>
<p><img src=”x”></p>
遍历富文本的每一个字符,当识别到“<”字符时,开始记录一个标签单元,当识别到“>”字符时,这个单元结束,获得了一个标签单元,富文本中的“<p>”、“</p>”、“<img src=”x”>”都是标签单元;当识别到“&”字符时,开始记录一个字符实体单元,当识别到“;”字符时,这个单元结束,获得了一个字符实体单元,富文本中的“&nbsp;”就是字符实体单元;其余的“一”、“二”、“三”等都是字符单元,得到如下单元数组:
[“<p>”, “一”, “二”, “三”, “四”, “五”, “&nbsp;”, “六”, “七”, “八”,“九”, “十”, “</p>”, “<p>”, “<img src=’x’>”, “</p>”]。
在其中一个实施例中,根据预先设置的第二规则对编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组,包括:
将编辑前的单元数组和编辑后的单元数组中的块级元素标签结束单元与块级元素标签开始单元之间的所有换行符清空,若一个标签单元为标签开始单元,当其是块级元素标签、在其他标签之内、并且上一个单元不是换行符单元时,在这个标签单元之前插入一个换行符单元;若一个标签单元为标签结束单元并且是块级元素标签时,在这个标签单元之后插入一个换行符单元,得到两个格式化后的单元数组;块级元素标签表示在浏览器渲染中独占一行的标签。
在具体实施例中,“<p>”和“</p>”就是块级元素p的开始标签和结束标签。根据第二规则遍历单元数组、插入换行符,将会得到如下单元数组:
[“<p>”, “一”, “二”, “三”, “四”, “五”, “&nbsp;”, “六”, “七”, “八”,“九”, “十”, “</p>”, “\n”, “<p>”, “<img src=’x’>”, “</p>”, “\n”]。
在其中一个实施例中,根据预先设置的第三规则对两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据,包括:
遍历两个格式化后的单元数组,将单元数组中的文本内容单元提取出来组成文本内容单元数组;文本内容单元由字符单元、字符实体单元和图片标签单元组成;
遍历两个格式化后的单元数组时,记录在标签层级发生变化时是第几个文本内容单元,得到标签层级变化位置并记录此时的标签层级内容,再结合文本内容单元将标签层级内容转换回富文本内容;标签层级变化位置与标签层级内容的数据为富文本标签数据。
在具体实施例中,在遍历单元数组时,每遇到非图片标签的标签单元都代表着此处标签层级发生了变化,因此只需要记录在标签层级发生变化时是第几个文本内容单元,并记录此时的标签层级内容,就可以结合文本内容单元将其转换回富文本内容。这些记录标签层级变化位置与标签层级内容的数据就称为富文本标签数据。
遍历单元数组,并根据第三规则将单元数组进行分类与记录,得到如下文本内容单元数组:
[“一”, “二”, “三”, “四”, “五”, “&nbsp;”, “六”, “七”, “八”, “九”,“十”, “\n”, “<img src=’x’>”, “\n”]
和如下富文本标签数据:
{ 0: “<p>”, 11: “”, 12: “<p>”, 13: “” }
其代表在文本内容单元数组的第0个单元上的标签层级发生了变化,其层级变化为在一个p标签下;文本内容单元数组的第11个单元上的标签层级发生了变化,其层级变化为空,即在第11个内容单元之前要还原所有已经插入的层级,在这里即为关闭第0个单元上插入的p标签层级;同理第12个内容单元又新增了p标签层级,该层级在第13个内容单元之前关闭。
在其中一个实施例中,获取富文本内容的过程包括:
利用浏览器或富文本编辑器获取富文本内容,标记数据是通过Web API获取用户在浏览器中选中并标记的选取范围数据,并通过第一规则、第二规则、第三规则确定范围数据在富文本内容的文本内容单元数组中的位置,即标记范围是从富文本中的第几个文本内容单元开始,第几个文本单元结束。
在具体实施例中,为渲染富文本的浏览器页面添加鼠标动作的监听,当鼠标在渲染富文本的元素内完成一组鼠标左键点击和鼠标左键抬起的操作时,根据Web API获取这组点击事件是否创造了选区、选中的内容是否符合预先设置的要求。当满足这些条件并且确定标记时,此次鼠标操作即为一次有效的“标记内容”的操作,选区数据即为此次标记动作的数据。
将富文本起始点位置与选区数据的起始点、结束点位置分别进行组合,通过WebAPI模拟选区,得到从富文本起始点到选区起始点、从富文本起始点到选区结束点的两个选区,再通过Web API获取两个模拟选区中的富文本内容。
在其中一个实施例中,根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量,包括:
根据差分算法对富文本编辑后的文本内容单元数组和富文本编辑的文本内容单元数组进行计算,得到最小编辑脚本;最小编辑脚本包括哪些位置的单元被删除了,哪些位置的单元被修改了,哪些位置新增了单元;
根据最小编辑脚本计算得到富文本编辑前的每一个文本内容单元在编辑后的偏移量。
在其中一个实施例中,利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据,包括:
将富文本编辑前的每一个文本单元在编辑后的偏移量应用到剩余的标记标签数据中,得编辑后的标记标签数据;剩余的标记标签数据表示在编辑过程中去除被删除部分的数据后剩余的标记标签数据。
在具体实施例中,假设有一段富文本内容:
<p>一二三四五六七八九十</p>
它的文本内容单元数组为:
[“一”, “二”, “三”, “四”, “五”, “六”, “七”, “八”, “九”, “十”, “\n”]
这段富文本内容上的“三四五六七八”为标记内容,标记数据为:
{ start: 2, end: 7 }
在编辑富文本内容时,删除“二三四”,这段富文本内容将变为:
<p>一五六七八九十</p>
它的文本内容单元数组为:
[“一”, “五”, “六”, “七”, “八”, “九”, “十”, “\n”]
使用差分算法对富文本编辑前后得到的文本内容单元数组进行计算时就能发现被删除内容“二三四”对应的就是文本内容单元数组中的第1~3个单元被删除了,可以得到文本内容单元数组偏移数据为:
{ 0: 0, 1: -3, 2: -3, 3: -3, 4: -3, 5: -3, 6: -3, 7: -3, 8: -3, 9: -3, 10: -3 }
其中-3代表这个位置的内容单元应该向前偏移3个位置。
将被删除的1~3的位置与原标记位置2~7相互取差集,容易得到原标记位置中的4~7是保留下来的标记范围,2~3是位置处的标记应该随着被删除的内容一起删除,得到去除被删除内容的标记范围:{ start: 4, end: 7 }
因为删除的三个字符导致后续文本内容单元数组4~9位置的单元全部前移了3的长度,因此保留下来的4~7的标记范围应该也向前偏移3个位置,就得到新的偏移后的标记范围:
{ start: 1, end: 4 }
正好对应富文本编辑后文本内容单元数组中的[“五”, “六”, “七”, “八”],与预期结果一致。
同理,若编辑后的富文本内容为:
<p>啊啊啊啊一五六七八九十</p>
它的文本内容单元数组为:
[“啊”, “啊”, “啊”, “啊”, “一”, “五”, “六”, “七”, “八”, “九”, “十”, “\n”]
虽然删除的“二三四”三个字符会导致后续单元向前偏移3个位置,但在文本内容单元数组差分计算中,新增的“啊啊啊啊”四个字符会将此后的单元向后偏移4个位置,把两个偏移量相加,就得到从“五”字符单元开始的单元都应该向后偏移1个单位。那么标记数据范围就应该有4~7变为5~8,正好对应富文本编辑后文本内容单元中的[“五”, “六”, “七”,“八”],与预期结果一致。
遍历富文本编辑后输出并处理得到的文本内容单元数组;
当遍历到单元数组第0个位置时,标签层级由无变为“<p>”,取层级差集,则要先插入<p>标签开始单元,标签层级变为“<p>”,再插入第0个位置的内容单元“一”;
当遍历到第1个位置时,有标记数据从此处开始,并且此处没有标签层级变化,则在此插入标记开始标签,假设为“<mark>”,再插入第1个位置的内容单元“五”;
中间没有标签层级变化时和标记数据变化时,依次插入该位置的内容单元。
当遍历到第4个位置时,有标记数据从此处结束,那么优先插入标记结束标签“</mark>”,并且此处没有标签层级变化,则再插入第4个位置的内容单元“九”;
后续一直到第7个位置时,标签层级由“<p>”变为“”,取差集可知p标签在此结束,那么先插入p标签的结束标签</p>。最终得到还原后的带有标记标签的富文本内容数组:
[“<p>”, “一”, “<mark>”, “五”, “六”, “七”, “八”, “</mark>”, “九”,“十”, “</p>”]
拼接起来得到富文本内容:
<p>一<mark>五六七八</mark>九十</p>
更复杂的结构也可以按照之前描述的规则进行还原。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图2所示,提供了一种HTML富文本内容转换装置,包括:富文本内容获取模块202、文档拆解模块204、格式化模块206、单元数组处理模块208、偏移量计算模块210和富文本内容转换模块212,其中:
富文本内容获取模块202,用于获取富文本内容;富文本内容包括富文本编辑前输出的HTML文档和编辑后输出的HTML文档;编辑前输出的HTML文档包括标记标签数据;
文档拆解模块204,用于根据预先设置第一规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组;
格式化模块206,用于根据预先设置的第二规则对编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组;
单元数组处理模块208,用于根据预先设置的第三规则对两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据;
偏移量计算模块210,用于将两组文本内容单元数组进行对比计算,得到编辑前后文本内容单元数组的差异;根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量;
富文本内容转换模块212,用于利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据;根据编辑后的标记标签数据与编辑后的文本内容单元数组、富文本标签数据构建转换后的富文本内容。
在其中一个实施例中,文档拆解模块204还用于根据预先设置第一规则对编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组,包括:
将编辑前输出的HTML文档和编辑后输出的HTML文档视为以字符单元、字符实体单元、标签单元三种最小单元组成的文本,其中字符实体单元以“&”字符开始、“;”字符结束;标签单元以“<”字符开始、“>”字符结束,标签单元又分为标签开始单元和标签结束单元,若“<”字符后紧接“/”字符,则是标签结束单元,否则是标签开始单元;其余字符为字符单元。
在其中一个实施例中,格式化模块206还用于根据预先设置的第二规则对编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组,包括:
将编辑前的单元数组和编辑后的单元数组中的块级元素标签结束单元与块级元素标签开始单元之间的所有换行符清空,若一个标签单元为标签开始单元,当其是块级元素标签、在其他标签之内、并且上一个单元不是换行符单元时,在这个标签单元之前插入一个换行符单元;若一个标签单元为标签结束单元并且是块级元素标签时,在这个标签单元之后插入一个换行符单元,得到两个格式化后的单元数组;块级元素标签表示在浏览器渲染中独占一行的标签。
在其中一个实施例中,单元数组处理模块208还用于根据预先设置的第三规则对两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据,包括:
遍历两个格式化后的单元数组,将单元数组中的文本内容单元提取出来组成文本内容单元数组;文本内容单元由字符单元、字符实体单元和图片标签单元组成;
遍历两个格式化后的单元数组时,记录在标签层级发生变化时是第几个文本内容单元,得到标签层级变化位置并记录此时的标签层级内容,再结合文本内容单元将标签层级内容转换回富文本内容;标签层级变化位置与标签层级内容的数据为富文本标签数据。
在其中一个实施例中,获取富文本内容的过程包括:
利用浏览器或富文本编辑器获取富文本内容,标记数据是通过Web API获取用户在浏览器中选中并标记的选取范围数据,并通过第一规则、第二规则、第三规则确定范围数据在富文本内容的文本内容单元数组中的位置,即标记范围是从富文本中的第几个文本内容单元开始,第几个文本单元结束。
在其中一个实施例中,偏移量计算模块210还用于根据编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量,包括:
根据差分算法对富文本编辑后的文本内容单元数组和富文本编辑的文本内容单元数组进行计算,得到最小编辑脚本;最小编辑脚本包括哪些位置的单元被删除了,哪些位置的单元被修改了,哪些位置新增了单元;
根据最小编辑脚本计算得到富文本编辑前的每一个文本内容单元在编辑后的偏移量。
在其中一个实施例中,富文本内容转换模块212还用于利用位置偏移量对标记标签数据进行偏移计算,得到编辑后的标记标签数据,包括:
将富文本编辑前的每一个文本单元在编辑后的偏移量应用到剩余的标记标签数据中,得编辑后的标记标签数据;剩余的标记标签数据表示在编辑过程中去除被删除部分的数据后剩余的标记标签数据。
关于一种HTML富文本内容转换装置的具体限定可以参见上文中对于一种HTML富文本内容转换方法的限定,在此不再赘述。上述一种HTML富文本内容转换装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种HTML富文本内容转换方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (7)

1.一种HTML富文本内容转换方法,其特征在于,所述方法包括:
获取富文本内容;所述富文本内容包括富文本编辑前输出的HTML文档和编辑后输出的HTML文档;所述编辑前输出的HTML文档包括标记标签数据;
根据预先设置第一规则对所述编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组;
根据预先设置的第二规则对所述编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组;
根据预先设置的第三规则对所述两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据;
将所述两组文本内容单元数组进行对比计算,得到编辑前后文本内容单元数组的差异;
根据所述编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量;
利用所述位置偏移量对所述标记标签数据进行偏移计算,得到编辑后的标记标签数据;
根据所述编辑后的标记标签数据与编辑后的文本内容单元数组、富文本标签数据构建转换后的富文本内容;
根据预先设置第一规则对所述编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组,包括:
将所述编辑前输出的HTML文档和编辑后输出的HTML文档视为以字符单元、字符实体单元、标签单元三种最小单元组成的文本,其中字符实体单元以“&”字符开始、“;”字符结束;标签单元以“<”字符开始、“>”字符结束,标签单元又分为标签开始单元和标签结束单元,若“<”字符后紧接“/”字符,则是标签结束单元,否则是标签开始单元;其余字符为字符单元;
根据预先设置的第二规则对所述编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组,包括:
将所述编辑前的单元数组和编辑后的单元数组中的块级元素标签结束单元与块级元素标签开始单元之间的所有换行符清空,若一个标签单元为标签开始单元,当其是块级元素标签、在其他标签之内、并且上一个单元不是换行符单元时,在这个标签单元之前插入一个换行符单元;若一个标签单元为标签结束单元并且是块级元素标签时,在这个标签单元之后插入一个换行符单元,得到两个格式化后的单元数组;所述块级元素标签表示在浏览器渲染中独占一行的标签;
根据预先设置的第三规则对所述两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据,包括:
遍历所述两个格式化后的单元数组,将单元数组中的文本内容单元提取出来组成文本内容单元数组;所述文本内容单元由字符单元、字符实体单元和图片标签单元组成;
遍历所述两个格式化后的单元数组时,记录在标签层级发生变化时是第几个文本内容单元,得到标签层级变化位置并记录此时的标签层级内容,再结合文本内容单元将所述标签层级内容转换回富文本内容;所述标签层级变化位置与标签层级内容的数据为富文本标签数据。
2.根据权利要求1所述的方法,其特征在于,获取富文本内容的过程包括:
利用浏览器或富文本编辑器获取富文本内容,标记数据是通过Web API获取用户在浏览器中选中并标记的选取范围数据,并通过第一规则、第二规则、第三规则确定所述范围数据在富文本内容的文本内容单元数组中的位置,即标记范围是从富文本中的第几个文本内容单元开始,第几个文本单元结束。
3.根据权利要求1所述的方法,其特征在于,根据所述编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量,包括:
根据差分算法对富文本编辑后的文本内容单元数组和富文本编辑的文本内容单元数组进行计算,得到最小编辑脚本;所述最小编辑脚本包括哪些位置的单元被删除了,哪些位置的单元被修改了,哪些位置新增了单元;
根据最小编辑脚本计算得到富文本编辑前的每一个文本内容单元在编辑后的偏移量。
4.根据权利要求3所述的方法,其特征在于,利用所述位置偏移量对所述标记标签数据进行偏移计算,得到编辑后的标记标签数据,包括:
将富文本编辑前的每一个文本单元在编辑后的偏移量应用到剩余的标记标签数据中,得编辑后的标记标签数据;所述剩余的标记标签数据表示在编辑过程中去除被删除部分的数据后剩余的标记标签数据。
5.一种HTML富文本内容转换装置,其特征在于,所述装置包括:
富文本内容获取模块,用于获取富文本内容;所述富文本内容包括富文本编辑前输出的HTML文档和编辑后输出的HTML文档;所述编辑前输出的HTML文档包括标记标签数据;
文档拆解模块,用于根据预先设置第一规则对所述编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组;
格式化模块,用于根据预先设置的第二规则对所述编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组;
单元数组处理模块,用于根据预先设置的第三规则对所述两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据;
偏移量计算模块,用于将所述两组文本内容单元数组进行对比计算,得到编辑前后文本内容单元数组的差异;根据所述编辑前后文本内容单元数组的差异进行偏移量计算,得到文本内容中单个单元的位置偏移量;
富文本内容转换模块,用于利用所述位置偏移量对所述标记标签数据进行偏移计算,得到编辑后的标记标签数据;根据所述编辑后的标记标签数据与编辑后的文本内容单元数组、富文本标签数据构建转换后的富文本内容;
文档拆解模块还用于根据预先设置第一规则对所述编辑前输出的HTML文档和编辑后输出的HTML文档进行拆解,得到编辑前的单元数组和编辑后的单元数组,包括:
将所述编辑前输出的HTML文档和编辑后输出的HTML文档视为以字符单元、字符实体单元、标签单元三种最小单元组成的文本,其中字符实体单元以“&”字符开始、“;”字符结束;标签单元以“<”字符开始、“>”字符结束,标签单元又分为标签开始单元和标签结束单元,若“<”字符后紧接“/”字符,则是标签结束单元,否则是标签开始单元;其余字符为字符单元;
格式化模块还用于根据预先设置的第二规则对所述编辑前的单元数组和编辑后的单元数组进行格式化,得到两个格式化后的单元数组,包括:
将所述编辑前的单元数组和编辑后的单元数组中的块级元素标签结束单元与块级元素标签开始单元之间的所有换行符清空,若一个标签单元为标签开始单元,当其是块级元素标签、在其他标签之内、并且上一个单元不是换行符单元时,在这个标签单元之前插入一个换行符单元;若一个标签单元为标签结束单元并且是块级元素标签时,在这个标签单元之后插入一个换行符单元,得到两个格式化后的单元数组;所述块级元素标签表示在浏览器渲染中独占一行的标签;
单元数组处理模块还用于根据预先设置的第三规则对所述两个格式化后的单元数组进行处理,得到两组文本内容单元数组和富文本标签数据,包括:
遍历所述两个格式化后的单元数组,将单元数组中的文本内容单元提取出来组成文本内容单元数组;所述文本内容单元由字符单元、字符实体单元和图片标签单元组成;
遍历所述两个格式化后的单元数组时,记录在标签层级发生变化时是第几个文本内容单元,得到标签层级变化位置并记录此时的标签层级内容,再结合文本内容单元将所述标签层级内容转换回富文本内容;所述标签层级变化位置与标签层级内容的数据为富文本标签数据。
6.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN202211473268.8A 2022-11-23 2022-11-23 一种html富文本内容转换方法、装置、设备和介质 Active CN115577683B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211473268.8A CN115577683B (zh) 2022-11-23 2022-11-23 一种html富文本内容转换方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211473268.8A CN115577683B (zh) 2022-11-23 2022-11-23 一种html富文本内容转换方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN115577683A CN115577683A (zh) 2023-01-06
CN115577683B true CN115577683B (zh) 2023-04-28

Family

ID=84590208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211473268.8A Active CN115577683B (zh) 2022-11-23 2022-11-23 一种html富文本内容转换方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN115577683B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116306526B (zh) * 2023-03-10 2024-01-02 北京麦克斯泰科技有限公司 一种根据文本下标标记对应富文本的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7661062B1 (en) * 1999-09-20 2010-02-09 Business Objects Americas System and method of analyzing an HTML document for changes such that the changed areas can be displayed with the original formatting intact
CN112001153A (zh) * 2020-08-12 2020-11-27 腾讯科技(深圳)有限公司 文本处理方法、装置、计算机设备和存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7890852B2 (en) * 2003-06-26 2011-02-15 International Business Machines Corporation Rich text handling for a web application
US7284192B2 (en) * 2004-06-24 2007-10-16 Avaya Technology Corp. Architecture for ink annotations on web documents
US8694904B2 (en) * 2008-04-15 2014-04-08 Microsoft Corporation Cross-browser rich text editing via a hybrid client-side model
US8286077B2 (en) * 2009-12-03 2012-10-09 Microsoft Corporation Remote batch editing of formatted text via an HTML editor
CN102799592B (zh) * 2011-05-26 2017-03-29 腾讯科技(深圳)有限公司 富文本文档的解析方法和系统
US11003837B2 (en) * 2019-05-03 2021-05-11 Microsoft Technology Licensing, Llc Controlling mark positions in documents
CN111274760B (zh) * 2020-01-09 2023-07-18 抖音视界有限公司 富文本数据处理方法、装置、电子设备及计算机存储介质
CN114282495A (zh) * 2020-09-28 2022-04-05 京东科技信息技术有限公司 一种文本标注方法和装置
CN114048407A (zh) * 2021-11-09 2022-02-15 中国人民解放军国防科技大学 基于html格式的平级富文本内容生成方法及装置
CN114997119A (zh) * 2022-06-01 2022-09-02 杭州倒映有声科技有限公司 一种调整阅读效果的富文本编辑方法
CN115204119A (zh) * 2022-07-20 2022-10-18 天津市红桥区太蒲科技工作室 一种基于标记语言的实时富文本编辑系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7661062B1 (en) * 1999-09-20 2010-02-09 Business Objects Americas System and method of analyzing an HTML document for changes such that the changed areas can be displayed with the original formatting intact
CN112001153A (zh) * 2020-08-12 2020-11-27 腾讯科技(深圳)有限公司 文本处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN115577683A (zh) 2023-01-06

Similar Documents

Publication Publication Date Title
US10409892B2 (en) Formatting data by example
US20060271567A1 (en) System and method for user edit merging with preservation of unrepresented data
CN115577683B (zh) 一种html富文本内容转换方法、装置、设备和介质
CN111222070A (zh) 数据处理方法、装置、设备及存储介质
CN109933751B (zh) 图文绘制方法、装置、计算机可读存储介质和计算机设备
CN109948518B (zh) 一种基于神经网络的pdf文档内容文本段落聚合的方法
CN110309457B (zh) 网页数据处理方法、装置、计算机设备和存储介质
CN113283228A (zh) 文档生成方法、装置、电子设备及存储介质
US20210073313A1 (en) Methods and systems for three-way merges of object representations
CN112433995A (zh) 文件格式转换方法、系统、计算机设备及存储介质
US9990343B2 (en) System and method for in-browser editing
CN112765506B (zh) 一种页面文本内容显示方法、装置、设备及存储介质
JP3452353B2 (ja) 辞書データ構造を記録した記録媒体、辞書引き方法、語句取得方法、辞書引き装置、語句取得装置、プログラムを記録した記録媒体
CN113609433A (zh) 一种算式布局确定方法、装置、电子设备及存储介质
CN110263303B (zh) 文本修改历史的追溯方法及装置
US20160012028A1 (en) Content management system
CN112328246A (zh) 页面组件生成方法、装置、计算机设备及存储介质
CN111859850B (zh) 富文本片段整体化的方法、装置、电子设备及存储介质
US20130159889A1 (en) Obtaining Rendering Co-ordinates Of Visible Text Elements
CN114154092B (zh) 用于对网页进行翻译的方法及其相关产品
CN116860979B (zh) 基于标签知识库的医疗文本标注方法及装置
Csuhaj-Varjú et al. CD grammar systems with competence based entry conditions in their cooperation protocols
CN113676186A (zh) 一种针对字符串的估算定位方法和系统
CN116384346A (zh) 基于html格式的文字替换方法、装置、终端和介质
CN114817133A (zh) 一种pdf文件的生成方法、装置、设备及可读存储介质

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