gpt4 book ai didi

android - 将特定表解析为字符串数组 Jsoup

转载 作者:行者123 更新时间:2023-11-28 02:25:12 25 4
gpt4 key购买 nike

我有这个相当复杂的 html,我想使用 JSoup 进行解析。我尝试了几件事,但都没有用。基本上,我想获取第二个表,读取所有行并将其附加到字符串。

我尝试过的

val document = Jsoup.parse(it.data)

val tableElements = document.select("table:eq(2) > tbody")
for (element in tableElements) {
val data = element.select("td")
try {
Timber.i("${data[0].select("small").text()} : ${data[1].select("small").text()}")
} catch (e: Exception) {
}
}

我要提取什么部分

<table>
<tbody>
<tr class="">
<td class="odsazena" align="left"><small>User's identification number: </small></td>
<td class="odsazena" align="left"><small>34565</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Study programme: </small></td>
<td class="odsazena" align="left"><small>Informatics</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Type of study: </small></td>
<td class="odsazena" align="left"><small>Bachelor</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Form of study: </small></td>
<td class="odsazena" align="left"><small>full-time, attendance method</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Standard length of study: </small></td>
<td class="odsazena" align="left"><small>3</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Number of credits required to complete your study: </small></td>
<td class="odsazena" align="left"><small>180</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Number of credits enrolled for the whole study: </small></td>
<td class="odsazena" align="left"><small>120</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Number of credits obtained during your whole course of study: </small></td>
<td class="odsazena" align="left"><small>90</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Your prospective academic degree: </small></td>
<td class="odsazena" align="left"><small>Bc.</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Beginning of study: </small></td>
<td class="odsazena" align="left"><small>09/01/2017</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Resolution of admission: </small></td>
<td class="odsazena" align="left"><small>Admitted without the entrance exam</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Progress of study: </small></td>
<td class="odsazena" align="left"><small>enrolled</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Mode of completion: </small></td>
<td class="odsazena" align="left"><small><i>not stated</i></small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Current financing: </small></td>
<td class="odsazena" align="left"><small>study fully financed from ME SK</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Final thesis topic: </small></td>
<td class="odsazena" align="left"><small><i>not stated</i></small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Final thesis supervisor: </small></td>
<td class="odsazena" align="left"><small><i>not stated</i></small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Language of study: </small></td>
<td class="odsazena" align="left"><small>Slovak</small></td>
</tr>
<tr class="">
<td class="odsazena" align="left"><small>Card number:</small></td>
<td class="odsazena" align="left"><small>123456</small></td>
</tr>
</tbody>
</table>

现在,问题到底是什么?好吧,根据我的尝试,代码甚至不允许我打印我想要的东西,并且在当前状态下它只会跳过 for 循环。我想要实现的是,我想进入第二个表“table:eq(2)”并获取“tbody”中的元素

最佳答案

我认为您也应该选择“tr”元素并像迭代“tbody”一样迭代它们。这是 Java 中的解决方案,因为我不知道 Kotlin 语法,但也许它有帮助:

Elements tableElements = doc.select("table").get(1).select("tbody").select("tr");
for (Element element : tableElements) {
Elements data = element.select("td");
System.out.println(data.select("small").first().text() +" : "
+ data.select("small").last().text());
}

关于android - 将特定表解析为字符串数组 Jsoup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54675553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com