2013-03-16 102 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='#')]");