根据我的理解,jsoup解析器允许使用相对链接,只要在实例化解析器时指定了基URI。
现在让我们假设文档定义了一个基本标签,其URI与页面的URI不同。这个URI不能先验地知道。
解析器的行为是什么? 它是否自动检测标签并将其应用于整个文档? 或者我们是否必须首次解析文档以检测基本标记,然后使用检测到的值作为基础uri重新解析它?
提前致谢 KOJ
答案 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/