【问题标题】:How to get url from iterator?如何从迭代器中获取 url?
【发布时间】:2014-05-20 03:37:25
【问题描述】:

如何从迭代器中获取 url,我使用的是 jsoup。

我尝试做urls.add(ite.next().parentNode().attributes().asList().get(0).toString());,但值不是需要的。

【问题讨论】:

  • 你是如何得到这个迭代器的?它在迭代什么? asList() 在我看来很可疑;您应该按名称而不是按位置获取属性。如果有 <a title="Yo" href="http://whatever"></a> 这样的标签怎么办?
  • 你得到了什么价值?
  • David Conrad,Iterator ite = table.select("FONT[style=FONT-SIZE: 10pt]").iterator();获取迭代器。我知道 asList() 不正确
  • Vishrant,例如“my_url.htm”
  • 我解决了问题:ite.next().parentNode().attributes().html().toString();

标签: java android jsoup


【解决方案1】:

一旦有了父节点,就可以调用 attr 函数了。
查看文档:http://jsoup.org/apidocs/org/jsoup/nodes/Node.html#attr(java.lang.String)

还要注意以 abs 为前缀的选项以获取绝对路径而不是相对路径:

String url = a.attr("abs:href");

【讨论】:

    【解决方案2】:

    我建议阅读有关如何从元素中提取属性值的文档: http://jsoup.org/cookbook/extracting-data/attributes-text-html

    堆栈溢出本身也有这个例子: getting attribute value from Div tag through jSoup

    这样的事情应该可以解决您的问题:

    Element link = doc.getElementById("yourlinkid");
    String attr = link.attr("href");
    System.out.println(attr);
    

    使用不同的选择器可以通过不同的方式找到您的链接。

    【讨论】:

    • 我使用元素:Element table = doc.select("table[width=90%]").first();并且还需要使用:Iterator ite = table.select("FONT[style=FONT-SIZE: 10pt]").iterator();
    • 这是一个有用的信息,但我不知道得到所需的值
    • 检查更新,选择您的链接元素并从中获取属性。
    猜你喜欢
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多