- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我的学校创建一个应用程序,以便更轻松地检查您的类(class)。我正在使用他们的网站,但他们显然没有简单的 API。所以我需要仔细阅读该网站并将所有内容分解出来。 (表层深处的单个标签)。
这就是我目前正在使用的:
doc.body().getElementsByTag("div").get(0).getElementsByTag("table").get(1).getElementsByTag("tbody").get(0).getElementsByTag("tr").get(1).getElementsByTag("td").get(0).getElementsByTag("table").get(0).getElementsByTag("tbody").get(0).getElementsByTag("tr").get(0).getElementsByTag("td").get(0).getElementsByTag("a").get(0).html()
doc = Jsoup 解析的文档。
对于这段代码,它工作得很好,但是一旦我尝试这个:
doc.body().getElementsByTag("div").get(0).getElementsByTag("table").get(1).getElementsByTag("tbody").get(0).getElementsByTag("tr").get(2).getElementsByTag("td").get(0).getElementsByTag("table").get(0).getElementsByTag("tbody").get(0).getElementsByTag("tr").get(0).getElementsByTag("td").get(0).getElementsByTag("a").get(0).html()
它返回一个错误。
03-02 11:30:14.239 15253-15280/? D/JM﹕ Stack [1]: java.util.ArrayList.get(ArrayList.java:308)
03-02 11:30:14.239 15253-15280/? D/JM﹕ Stack [2]: com.jmtech.jordi.mwc.BackgroundWorker.update_r_n(BackgroundWorker.java:374)
03-02 11:30:14.239 15253-15280/? D/JM﹕ Stack [3]: com.jmtech.jordi.mwc.BackgroundWorker.access$500(BackgroundWorker.java:54)
03-02 11:30:14.239 15253-15280/? D/JM﹕ Stack [4]: com.jmtech.jordi.mwc.BackgroundWorker$UpdateRaster_Raster_Notify.run(BackgroundWorker.java:355)
03-02 11:30:14.239 15253-15280/? D/JM﹕ Stack [5]: java.util.Timer$TimerImpl.run(Timer.java:284)
03-02 11:30:14.239 15253-15280/? D/JM﹕ java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
这是学校网站:http://maaswaal.roosternet.nl/?les=3H1
我无法复制和粘贴 HTML,因为 Stackoverflow 的问题 div 会将代码传输到网站,抱歉。
感谢您抽出时间回复
最佳答案
我在 HTML 源代码中没有看到任何 tbody
- 但您正在尝试访问它。
删除所有 .getElementsByTag("tbody").get(0)
并尝试。
我刚刚检查过 - 我明白发生了什么!
执行时 - 第 2 个表和第 3 行
doc.body().getElementsByTag("div").get(0).getElementsByTag("table").get(1).getElementsByTag("tr").get(2)
它返回下面突出显示在 ** 之间的部分。因为有一个tr
标签。它不会为您提供同一级别中的所有行。
<table class="maintableles">
<tr>
<th>3H1</th>
<th class="lesdagen">maandag</th>
<th class="lesdagen">dinsdag</th>
<th class="lesdagen">woensdag</th>
<th class="lesdagen">donderdag</th>
<th class="lesdagen">vrijdag</th>
</tr>
<tr>
<th class="lesuren">
<div class="lesurendiv">1e uur</div>
</th>
<td>
<table>
**<tr>
<td><a href="?les=BRS">BRS</a></td>
<td><a title="rekenen">rek</a></td>
<td align="right"><a href="?les=V110">V110</a></td>
</tr>**
</table>
</td>
<td>
<小时/>
您可以使用 CSS 选择器来实现此目的,这比您的方法更容易!!。
doc.select("body > div > table.maintableles > tbody > tr:nth-child(3) > td:nth-child(2) > table > tbody > tr > td:nth-child (1) > a").html()
关于java - Jsoup getElementsByTag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35760766/
我正在为我的学校创建一个应用程序,以便更轻松地检查您的类(class)。我正在使用他们的网站,但他们显然没有简单的 API。所以我需要仔细阅读该网站并将所有内容分解出来。 (表层深处的单个标签)。 这
您好,我桌面上的文件夹中有一个 XML 文档,我正在尝试读出标签名称为“cuisine”的所有元素。 这是我的代码: if(window.XMLHttpRequest){ xmlhttp =
我正在尝试使用 getElementsByTagName("a") 方法获取特定标签下的所有元素。 但是,我不想要每个 anchor 标记。我该如何缩小范围,以便只选择“someListClass”名
过去几天我一直在尝试这样做,但我的 Javascript 很糟糕。非常。 基本上,我试图完成的是获取 td 中的值,并检查 10 位数字的字符串。 (实际上,任何美国格式的电话号码。我已经想出了正则表
Jsoup 中的 getElementsByTag 和 select 有什么区别(例如,如果获取链接或图像标签)?如果它们不同,我怎么知道在特定情况下使用哪一个? 最佳答案 一般来说,我更喜欢sele
我正在使用 JSoup 编写一些东西,这是我在其他地方看到的,许多方法都将字符串作为参数。 这类事情让我烦恼,我宁愿使用枚举值作为参数。使用 HTML.Tag 'enum' 和 .toString()
ckeditor 在 IE 上 getElementsByTag 时丢失自定义标签 文档内容如下: text Text text 位于(变量)itag var nNo
我是一名优秀的程序员,十分优秀!