【发布时间】:2016-05-15 18:29:31
【问题描述】:
在我的 Java 应用程序中,我需要分析 HTML。到目前为止,我使用 JSoup 并且效果很好。但现在,我需要从 HTML 字符串中获取已清理的文本,此外,还需要获取已删除标签的位置。例如,如果我有
Some HTML <b id="boldtext">text</b>
需要的输出是
Some HTML text
还有信息,从位置 10 到 14 有一个 b-tag(我需要标签的位置,就好像那里没有标签一样)并且标签的 id 为“boldtext”。
(我希望我能说清楚我需要什么,我不太擅长解释 - 它类似于 this 问题,除了我还需要找到的标签的属性并且它是 Java,而不是 Python)
我想用 JSoup 来做这件事,但没有找到方法(如果有,请告诉我!)。实现我自己的算法也效果不佳,难以理解并导致许多错误。那么,获取所需信息的好方法是什么?有没有办法使用 JSoup 做到这一点?我需要一个不同的图书馆吗?任何帮助表示赞赏!
**编辑:**我将尝试更清楚地说明我需要什么。在上面的示例中,我需要 HTML-clean 文本以及剩余文本的哪一部分是粗体的信息。我需要开始和结束位置,但是HTML标签后来被删除了,所以在搜索正确的位置时不能计算它们。
完美的输出将是一个对象列表,每个对象都包含有关一个标签的信息(我所说的标签是指属于一起的开始和结束标签):标签类型(例如“b”、“quote”等。 )、标签内容(不含 HTML)、属性以及标签的开始和结束位置。同样,当我从标签中删除标签时,位置需要保持有效!清除标签后,应用程序仍然需要知道“文本”是粗体,而不是在删除标签之前,结束标签的开头是 31,因为在删除标签时,正确的结束位置移动了 17 个字符向左。
【问题讨论】: