获取jsoup中元素的字符偏移量

ccl*_*eve 6 lexical-analysis jsoup

我需要将jsoup元素映射回源HTML中的特定字符偏移量.换句话说,如果我有这样的HTML:

Hello <br/> World
Run Code Online (Sandbox Code Playgroud)

我需要知道"Hello"从偏移量0开始,长度为6个字符,<br/>从偏移量6开始,长度为5个字符等.

我在Element javadoc中找不到返回此信息的getter.可以检索吗?

Ric*_*nus 0

我不相信 Jsoup 有这个功能。这个问题看起来更接近于词法分析而不是 HTML 解析。

我会编写一个语法,然后针对该语法编写一个词法分析器,该语法分析器将标记 HTML,并提供您正在寻找的偏移量。

首先,使用 Jsoup 解析文档以验证它是否是有效的 HTML。

然后,根据语法对文档进行词法分析。语法可能如下所示:

Document := {optional-opening-tag} | {literal} {optional-opening-tag} | {optional-closing-tag}

optional-opening-tag := ["<" {literal} ">" {optional-opening-tag}|{literal} ] | ""

optional-closing-tag := "</ {literal} ">" | ""

literal := any string of characters not beginning with whitespace, or containing "<"
Run Code Online (Sandbox Code Playgroud)

将您找到的每个标记插入存储标记、第一个字符的索引和长度的对象中。