Java 遍历jsoup中的元素并解析href

Java 遍历jsoup中的元素并解析href,java,html,jsoup,href,Java,Html,Jsoup,Href,我很难从一行表数据中获取href。虽然我能够让它工作,但我想知道是否有人能解释为什么我的代码在这里工作 for (Element element : result.select("tr")) { if (element.select("tr.header.left").isEmpty()) { Elements tds = element.select("td"); //The line below is what I don't understand

我很难从一行表数据中获取href。虽然我能够让它工作,但我想知道是否有人能解释为什么我的代码在这里工作

for (Element element : result.select("tr")) {
    if (element.select("tr.header.left").isEmpty()) {

        Elements tds = element.select("td");

        //The line below is what I don't understand
        String link = tds.get(0).getElementsByAttribute("href").first().attr("href");

        String position = tds.get(1).text();
     }
}
我以前使用的行不起作用,如下所示:

String link = tds.get(0).attr("href");
为什么此行返回空字符串?我假设这与我如何通过“tr”选择的元素进行迭代有关。然而,我不熟悉元素与元素的结构


谢谢你的帮助

元素
只是一个
数组列表

您必须编写额外代码的原因是
没有
href
属性,因此
tds.get(0.attr(“href”)不起作用。您可能试图从单元格中的
捕获href。较长的工作代码是:

对于行中的第一个单元格,获取具有@href属性(即链接)的第一个元素,然后获取 @href属性

尝试以下示例(使用示例文档)以更清楚地显示如何访问子链接:

Element result = Jsoup.parse("<html><body><table><tr><td><a href=\"http://a.com\" /</td><td>Label1</td></tr><tr><td><a href=\"http://b.com\" /></td><td>Label2</td></tr></table></body></html>");

for (Element element : result.select("tr")) {
    if (element.select("tr.header.left").isEmpty()) {

        Elements tds = element.select("td");

        String link = tds.get(0).getElementsByTag("a").attr("href");
        String position = tds.get(1).text();

        System.out.println(link + ", " + position);
    }
}
Element result=Jsoup.parse(“