2013-03-16 52 views
1

使用这种使用逻辑OR,NOT和jsoup选择

for (Element link : links) { 
    String linkHref = link.attr("href and !#");  
    String linkText = link.text();  
} 

我可以得到所有具有"a href=.."

的联系。然而,也有一些

href="#" 

我,我不不需要我的字符串。 所以我需要做的是这样

String linkHref = link.attr("href and !#") 

即我不想保存有"#"作为HREF的链接。

是否可能,或者我必须使用正则表达式呢?

请帮忙。

+0

这看起来不像jQuery和CSS。请正确标记和标题您的问题,并阅读http://stackoverflow.com/editing-help – BoltClock 2013-03-16 18:15:38

+0

你在问一个特定的API - 一个特定的库。这可能很好,但是你需要指出你在问什么*库。例如,你的'Element'显然不是[org.w3c.dom.Element'接口](http://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Element .html),因为该接口没有'attr'方法。 – ruakh 2013-03-16 18:19:57

+0

可能你需要的只是一个简单的检查,如下所示:'String linkHref = link.attr(“href”);如果(linkHref ==“#”)继续;' – 2013-03-16 20:50:49

回答

0

看完你的问题之后,看起来好像你想要选择所有没有'#'的锚标签作为href。您可以使用:not Selector

Elements links = doc.select("a[href]"); // All anchor tags with href 
links = links.select(":not(href='#')"); // Filter out links which do have href=# 
0

Jsoup选择接受逗号为选择组合

doc.select("[href], [src]"); // href **OR** src 

对于只是在一个单一的CSS选择器将它们结合起来。检查这个answer

doc.select("a[href][:not(href='#')]");