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

时间:2012-07-08 23:09:11

标签: jsoup lexical-analysis

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

Hello <br/> World

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

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

1 个答案:

答案 0 :(得分: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 "<"

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