Jsoup是否使用html文档的基本标记来自动解析相对路径

时间:2012-12-11 16:17:03

标签: jsoup

根据我的理解,jsoup解析器允许使用相对链接,只要在实例化解析器时指定了基URI。

现在让我们假设文档定义了一个基本标签,其URI与页面的URI不同。这个URI不能先验地知道。

解析器的行为是什么? 它是否自动检测标签并将其应用于整个文档? 或者我们是否必须首次解析文档以检测基本标记,然后使用检测到的值作为基础uri重新解析它?

提前致谢 KOJ

1 个答案:

答案 0 :(得分:1)

Jsoup将检测<base>标记并将其应用于整个文档。解析相对链接时,基本标记URI优先于提供给解析器的URI。您不需要解析文档两次。举个例子:

Document doc = Jsoup.parse(
    "<a href='/one/'>One</a>" +
    "<base href='http://example.com/' />" +
    "<a href='/two/'>Two</a>");
Elements els = doc.select("a");
for (Element e: els) {
    System.out.println(e.attr("abs:href"));
}

给出:

http://example.com/one/
http://example.com/two/