gpt4 book ai didi

java - 如何在Jsoup中删除部分网页?

转载 作者:行者123 更新时间:2023-12-01 15:26:04 26 4
gpt4 key购买 nike

我目前正在研究 Jsoup。我已经得到了一个元素 content 看起来像

<p>123</p>
<p>456</p>
<p>789</p>
<p>abc</p>
<p>efg</p>
....

efg 行之后有几行,但我希望删除 efg 行之后的所有行,并且我希望结果是一个 Element(不是 Elements)

我尝试过几种方法,例如

content.children().removeAll(content.getElementsByIndexGreaterThan(content.children().indexOf(content.select("p:contains(efg)"))));

content.getElementsByIndexGreaterThan(content.select("p:contains(efg)")).remove();

不幸的是,它们都不起作用。有人对此有更好的解决方案吗?感谢您阅读这篇文章。

最佳答案

<div> 
<p>123</p>
<p>456</p>
<p>789</p>
<p>abc</p>
<p>efg</p>
<p>111</p>
<p>222</p>
<p>333</p>
<p>444</p>
</div>
<小时/>
public static void main(String[] args) throws Exception {
String html = new String(Files.readAllBytes(Paths.get("input.html")));
Document doc = Jsoup.parse(html);
Element content = doc.select("div").first();

Element lastValidElement = content.select("p:contains(efg)").first();
int lastValidElementIndex = content.children().indexOf(lastValidElement);
content.getElementsByIndexGreaterThan(lastValidElementIndex).remove();
System.out.println(content);
}
<小时/>
<div> 
<p>123</p>
<p>456</p>
<p>789</p>
<p>abc</p>
<p>efg</p>
</div>

关于java - 如何在Jsoup中删除部分网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10134472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com