3
我有一個包含關注邏輯的表。JSoup:檢索不包含特定屬性的元素
- 名
- 對於包含
<tr class=hiderow><td class=packagename>...</td></tr>
每一行的表顯示列表 - >此行是不可見的。
所以表格可能包含100行,但如果有20行包含class=hiderow
,那麼用戶只能在頁面上看到80行。我想檢索這80行(不是100)的名稱。所以我需要解析出不包含class=hiderow
的數據。我知道如何使用jsoup
獲取每個名稱,我也看到在文檔 :not(selector) elements that do not match the selector.
中,但我不確定如何使用它。請幫忙。
編輯我已經弄清楚如何做到這一點。請讓我知道如果有更好的方法。
EDIT2請使用BalusC以下的解決方案。它更乾淨。
public void obtainPackageName(String urlLink) throws IOException{
List<String> pdfList = new ArrayList<String>();
URL url = new URL(urlLink);
Document doc = Jsoup.parse(url, 3000);
Element table = doc.select("table[id=mastertableid]").first();
Iterator<Element> rowIter = table.select("tr").iterator();
while(rowIter.hasNext()){
Element row = rowIter.next();
if(!row.className().contains("hiderow")){
Element packageName = row.select("td[class=packagename]").first();
if(packageName != null){
pdfList.add(packageName.text());
}
}
}
}
這看起來乾淨多了,我會嘗試。 TY BalusC –
謝謝BalusC。它工作得很好。 TY –
不客氣。 – BalusC