Kotlin:计算 <tr> Jsoup 中的元素
Kotlin: count the elements inside a <tr> Jsoup
我在 HTML 中有这个 table:
<table class="table">
<tr>
<td class="alignLeft">XXX</td>
<td align="right">XXX</td>
<td align="right">XXX</td>
</tr>
<tr>
<td class="alignLeft">XXX</td>
<td align="right">XXX</td>
<td align="right">XXX</td>
</tr>
<tr>
<td colspan='2' align="right">UNTIL HERE</td>
<td align="right" >XXX</td>
</tr>
<td colspan='3' align='center' valign='middle'>
<table width='90%' border='0' cellspacing="0" cellpadding="0">
<form name='something'>
<tr>
<td align='center'>
<select name="somethingElse" size="1" class="select" onChange="document.getElementById('script').innerHTML=this.value;">
<option label="" value="000" SELECTED></option>
<option value="2019">2019</option>
只有当 tr 有三个 td 时,我才需要获取 td 值
这就是我在科特林中所拥有的:
doc = connect("https://www.somepage.com").get()
val table = doc.select("table.table")[1]
val rows = table.select("tr")
val tds = rows.select("td")
for (td in tds) {
println(td.text())
}
当我得到:
时,我该如何打破 for
<td colspan='2' align="right">UNTIL HERE</td>
val source = "<td colspan='2' align="right">UNTIL HERE</td>"
val text = source.substring(
source.indexOf(">"),
source.indexOf("</")
)
没用过jsoup库,但据我了解,你需要的是:
doc = connect("https://www.somepage.com").get()
val table = doc.select("table.table")[1]
// this gives you all the rows, so you iterate over them
val rows = table.select("tr")
for (row : rows) {
val cols = row.select("td")
if (cols.length === 3) {
continue;
}
// here the row doesn't have 3 columns
}
我在 HTML 中有这个 table:
<table class="table">
<tr>
<td class="alignLeft">XXX</td>
<td align="right">XXX</td>
<td align="right">XXX</td>
</tr>
<tr>
<td class="alignLeft">XXX</td>
<td align="right">XXX</td>
<td align="right">XXX</td>
</tr>
<tr>
<td colspan='2' align="right">UNTIL HERE</td>
<td align="right" >XXX</td>
</tr>
<td colspan='3' align='center' valign='middle'>
<table width='90%' border='0' cellspacing="0" cellpadding="0">
<form name='something'>
<tr>
<td align='center'>
<select name="somethingElse" size="1" class="select" onChange="document.getElementById('script').innerHTML=this.value;">
<option label="" value="000" SELECTED></option>
<option value="2019">2019</option>
只有当 tr 有三个 td 时,我才需要获取 td 值 这就是我在科特林中所拥有的:
doc = connect("https://www.somepage.com").get()
val table = doc.select("table.table")[1]
val rows = table.select("tr")
val tds = rows.select("td")
for (td in tds) {
println(td.text())
}
当我得到:
时,我该如何打破 for<td colspan='2' align="right">UNTIL HERE</td>
val source = "<td colspan='2' align="right">UNTIL HERE</td>"
val text = source.substring(
source.indexOf(">"),
source.indexOf("</")
)
没用过jsoup库,但据我了解,你需要的是:
doc = connect("https://www.somepage.com").get()
val table = doc.select("table.table")[1]
// this gives you all the rows, so you iterate over them
val rows = table.select("tr")
for (row : rows) {
val cols = row.select("td")
if (cols.length === 3) {
continue;
}
// here the row doesn't have 3 columns
}