【问题标题】:Jsoup: How to get an image src as an absolute uri?Jsoup:如何将图像 src 作为绝对 uri?
【发布时间】:2013-12-26 20:04:04
【问题描述】:

我这样做了:

Document doc = Jsoup.parse(xmlDescrizione);
Elements lista = doc.select("img");
Element url = lista.get(0);

System.out.println(url);
System.out.println(url.attr("abs:src"));

第一行打印:<img src="IMAGEURL..." alt="" border="1" width="80" height="59" /> 第二行打印空字符串

我错过了什么?

【问题讨论】:

    标签: java uri jsoup


    【解决方案1】:

    您似乎在解析已经阅读过的 HTML 代码,因此您的 doc 不知道可用于构建绝对路径的基本 uri。如果是这种情况,那么您应该在使用 url.attr("abs:src")url.absUrl("src") 之前明确指定基本 uri。
    例如,您可以使用

    doc.setBaseUri("http://your.domain.com/your/page");
    

    【讨论】:

      【解决方案2】:

      我不完全确定 scr 属性是否与 abs: 前缀一起使用。根据Jsoup documentation你可以试试这个:

      Document doc = Jsoup.parse(xmlDescrizione);
      Element image = doc.select("img").get(0);;
      String urlStr = image.absUrl("src");
      System.out.println(urlStr);
      

      请注意,abs: 前缀和 Node.absUrl("key") 方法仅在正确提供给 Jsoup 解析器的基本路径时才有效。因此,您似乎还需要调整您的

      Jsoup.parse(xmlDescrizione);
      

      类似

      Jsoup.parse(xmlDescrizione, "THE/BASE/PATH");
      

      【讨论】:

      • 它仍然返回一个空字符串。
      • 注意我添加的关于基本路径的评论
      【解决方案3】:

      可能你需要使用 image.absUrl("abs:href") 而不是使用 src 。它取决于属性键名

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        相关资源
        最近更新 更多