6

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

Hello <br/> World

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

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

4

1 回答 1

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 "<"

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

于 2013-02-25T00:10:36.333 回答