Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除Jsoup中的部分网页?_Java_Android_Jsoup - Fatal编程技术网

Java 如何删除Jsoup中的部分网页?

Java 如何删除Jsoup中的部分网页?,java,android,jsoup,Java,Android,Jsoup,我目前在Jsoup工作。我已经得到一个元素内容看起来像 <p>123</p> <p>456</p> <p>789</p> <p>abc</p> <p>efg</p> .... 或 不幸的是,它们都不起作用。有谁有更好的解决方案吗?谢谢你阅读这篇文章 <div> <p>123</p> <p>456</p>

我目前在Jsoup工作。我已经得到一个元素
内容
看起来像

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

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

<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>


123

456 789 美国广播公司 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>