3
私は、followロジックを含むテーブルを持っています。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.
しかし、私はそれを使用する方法がわかりません。助けてください。
EDIT私はそれを行う方法を理解しています。より良い方法があれば教えてください。
EDIT2下記のBalusCのソリューションをご利用ください。はるかにクリーンです。
tr
である)関心の要素に
:not()
を適用し、要素が
.hiderow
ある
ないマッチ(べきで、その中に要素の相対CSSセレクタを渡す必要があり
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