我需要将 jsoup 元素映射回源 HTML 中的特定字符偏移量。换句话说,如果我的 HTML 看起来像这样:
Hello <br/> World
我需要知道“Hello”从偏移量 0 开始,长度为 6 个字符,<br/>
从偏移量 6 开始,长度为 5 个字符,等等。
我在返回此信息的 Element javadoc 中找不到 getter。可以找回吗?
我需要将 jsoup 元素映射回源 HTML 中的特定字符偏移量。换句话说,如果我的 HTML 看起来像这样:
Hello <br/> World
我需要知道“Hello”从偏移量 0 开始,长度为 6 个字符,<br/>
从偏移量 6 开始,长度为 5 个字符,等等。
我在返回此信息的 Element javadoc 中找不到 getter。可以找回吗?
我不相信 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 "<"
将您找到的每个标记插入到存储标记、第一个字符的索引和长度的对象中。