2015-04-21 77 views
0

我是jsoup Java HTML解析器中的新成员。JAVA - 我需要更改JSOUP中绝对路径的相对路径

我有以下代码:

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(); 
} 

output.html

我接收相对路径:

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

代替ABSOL的ute path:

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

我该如何改变它?

答案是:

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

这并不取决于你,网页是这样写的。如果你想获得绝对路径,你应该自己解析它,也就是在所有'Img [src]'标签前添加'http://bestSite.com'。 – RafaelC

+0

你想要整个标签还是只是src路径? – Vyncent

+0

只是src路径。我明白,应该自己解析它通过添加bestSite.com之前所有的Img [src]标签,但如何做到这一点?) – Dan

回答

2

在JSoup你可以得到绝对的,而不是相对的,但获取的属性,只有当:

所以,你可以这样做:

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