Я пытаюсь удалить "TR" на таблице с определенным идентификатором, где я получил от
String url = "http://citraslider.blogspot.com/2014/03/table-model.html";
Document doc = Jsoup.connect(url).get();
System.out.println(doc);
И напечатайте:
<table id="mt" border="0" cellpadding="2" cellspacing="0" width="100%" class="hbtbl">
<tr id="1"><td class="aa"><div class="bb">11</div><a href="mailto:[email protected]" target="_blank"><b class="nme pn_std">bua</b></a>: ask 1 ?</td></tr>
<tr id="2"><td class="a"><div class="b">12</div><a href="mailto:[email protected]" target="_blank"><b class="nme pn_std">bua</b></a>: ask 2 ?</td></tr>
<tr id="3"><td class="aa"><div class="bb">13</div><a href="mailto:[email protected]" target="_blank"><b class="nme pn_std">bua</b></a>: ask 3 ?</td></tr>
<tr id="-1"><td class="a"><div align="center"><a href="javascript:void(window.open('index.php?mid=1&btag=awe&i='+((cf.op)?cf.op:8304), 'archive', 'width=320,height=400,resizable=yes,scrollbars=yes'));">[prev]</a></div></td></tr>
</table>
Вот так:
Elements elemen= doc.select("tr");
Elements el = doc.getElementsByAttributeValue("id", "-1");
el.remove(0);
System.out.println(el); // Here its work
for (Element e : elemen) {
System.out.println(e.text()+":"+e.attr("id")); // But at this line still show [prev], tr id="-1" still show
e.getElementsByAttributeValue("id", "-1").remove();
}
Итак, как я могу удалить "tr id = -1" по результатам цикла?
<tr id="-1"><td class="a"><div align="center"><a href="javascript:void(window.open('index.php?mid=1&btag=awe&i='+((cf.op)?cf.op:8304), 'archive', 'width=320,height=400,resizable=yes,scrollbars=yes'));">[prev]</a></div></td></tr>
Просто измените селектор, чтобы исключить tr
для id = -1
Elements elemen= doc.select("tr").not("tr#-1");
Подробнее о синтаксисе селектора здесь.
Код становится,
Elements elemen= doc.select("tr").not("tr#-1");
for (Element e : elemen) {
System.out.println(e.text()+":"+e.attr("id"));
}
дает,
11bua: ask 1 ?:1
12bua: ask 2 ?:2
13bua: ask 3 ?:3