【问题标题】:JAVA - I need to change relative paths to absolut paths in JSOUPJAVA - 我需要在 JSOUP 中将相对路径更改为绝对路径
【发布时间】:2015-06-28 20:52:47
【问题描述】:

我是 jsoup Java HTML Parser 的新手。

我有以下代码:

String url =”http://bestSite.com”;
  try{
Document document = Jsoup.connect(url).get();
File input = new File("/somePath/output.html");
PrintWriter writer = new PrintWriter(input, "UTF-8");
Elements element = document.getElementsByClass(“logo”);
  writer.write(element.outerHtml());
  writer.flush();
  writer.close();
}

在

输出.html

我收到相对路径:

<img src="/images/fun.png" 

而不是绝对路径:

<img src=”http://bestSite.com/image/fun.png”

如何更改?

答案是:

Elements media = document.select("img[src]");
for (Element src : media) {
src.attr("src", src.absUrl("src"));
}

【问题讨论】:

  • 那不取决于你,网页就是这样写的。如果要获取绝对路径,则应自己解析,即在所有Img[src]标签前加上'bestSite.com'。
  • 你想要整个标签还是只需要 src 路径?
  • 只是 src 路径。我知道应该通过在所有 Img[src] 标签之前添加 bestSite.com 来自己解析它,但是该怎么做呢?)
  • 好的,请看下面我的回答

标签: java path html-parsing jsoup html-parser


【解决方案1】:

在 JSoup 中,您可以获得绝对值而不是相对值,但仅在检索属性时:

String relativeSrc = elment.attr("src");
String absoluteSrc = elment.attr("abs:src");

所以你可以这样做:

for (Element element : elements) {
     String absoluteSrc = elment.attr("abs:src");       
}

【讨论】:

    猜你喜欢
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    相关资源
    最近更新 更多