java JSoup解析结构不良的HTML
我的HTML结构如下所示:
<h1>Title</h1>
<h2>Subtitle</h2>
<p>Some text</p>
<p>Some other text</p>
<h1>Some other title</h1>
<h2>Another sub-title</h2>
<p>Some other text</p>
基本上,它们是文章,但每一篇文章都不在一个单独的分区内。因此,将它们分开的是标签。我只对解析段落文本感兴趣,因为每一篇文章都应该是一个独立的实体
我想的是:找到物品存放的容器,找到第一个h1标签。开始解析所有元素,直到到达另一个h1标记。当到达新的h1标签时,处理之前解析的数据并重新开始
但我想知道一个更简单的解决方案是否可行
# 1 楼答案
我只能稍微改进一下你的解决方案:
h1
元素(而不仅仅是逐个搜索容器的元素)h1
h1
^{} 让您可以找到} 让您可以轻松地从每个} 向前遍历,但之后您必须自己删除非元素——当然,如果
h1
(例如,.select("selector-for-container > h1")
,然后^{h1
(或^{p
中有不是的文章内容,那么您就需要将其用于文本节点)