2013-02-25 205 views
0

我使用JSOUP过滤链接出html身体。Jsoup选择没有标签的链接

我用这些选择:

Elements links = doc.select("a[href]"); // Select all links 
links.select("a[href*=#]").remove(); // remove links containing # 

但仍有连接包含一个主题标签。这怎么可能?

+0

当你说“还有链接”时,你的意思是在元素(这是一个列表本身)还是在文档(doc)对象中? – 2013-02-25 21:20:08

+0

在我的元素集合中有链接包含“#” – pila 2013-02-25 21:24:48

回答

4

Elements上的remove()方法不会从元素本身删除匹配项,而是从关联的Document对象中删除匹配项。

例如,如果您有:

<html> 
<body> 
    <a href="#someid"></a> 
    <a href="http://www.google.pt"></a> 
</body> 
</html> 

links.select("a[href*=#]").remove();后,你会:

<html> 
<head></head> 
<body> 
    <a href="http://www.google.pt"></a> 
</body> 
</html> 

如果您想选择所有非主题标签的链接,你可以这样做:

Elements links = doc.select("a[href~=[^#]*"); 
+0

另一种方式将是: Document doc = Jsoup.parse(html); doc.select(“a [href * =#]”)。remove(); \t \t \t元素链接= doc.select(“a [href]”); – pila 2013-02-28 19:46:18