我正在尝试解决以下问题。
假设我有一个 HTML 文件,内容如下:
</div class = nameCouldBeAnything1><br>
<p>some text here</p><br>
</div>
<div class = nameCouldBeAnything2><br>
<p>some more text here</p><br>
</div>
<div class = nameCouldBeAnything3><br>
<p>even more text here</p><br>
<p>and here</p><br>
<p>and here</p><br>
<p>and here</p><br>
<p>and here</p><br>
</div>
我想要实现的是将div标签之间的内容存储到单独的字符串或字符串数组变量中。
如果有 Jsoup 解决方案,那就太好了,如果没有,那么从 p 开始并以 /p 结尾的正则表达式字符串匹配也很好。
需要考虑的挑战是:
1)您不能使用特定的div类名来精确定位p标签的位置,以便使用Jsoup获取明文。
2)使用doc.select("body p")
或doc.select("div p")
来自 Jsoup 的作品,但是当您想将 p 标签存储到字符串变量中时,它们将单独写入变量而不是通过div写入变量。
这是我到目前为止所拥有的:
htmlFile = Jsoup.parse(input, "UTF-8");
Elements body = htmlFile.select("body p");
Element bodyStart = body.first();
Element bodyEnd = body.last();
Element p = bodyStart;
int divCount = 0;
while(p != bodyEnd)
{
p = body.get(divCount);
System.out.println(p.text());
divCount++;
}
这将获得每个单独的 p 标签,但是我希望 p 标签保留在它们各自的 div 中,并将每个单独的 div 存储到字符串/字符串数组变量中。