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