有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    我只能稍微改进一下你的解决方案:

    1. 选择容器中的所有h1元素(而不仅仅是逐个搜索容器的元素)
    2. 对于每个匹配h1
      1. 聚集它的以下兄弟姐妹直到第一个h1
      2. 处理它们

    ^{}让您可以找到h1(例如,.select("selector-for-container > h1"),然后^{}让您可以轻松地从每个h1(或^{}向前遍历,但之后您必须自己删除非元素——当然,如果p中有不是的文章内容,那么您就需要将其用于文本节点)