Here you can find the source of prepareImagePath(String html, URL url)
private static String prepareImagePath(String html, URL url)
//package com.java2s; /******************************************************************************* * Copyright (c) 2016 Pablo Pavon-Marino. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl.html * * Contributors:/*w ww . ja v a2 s. c om*/ * Pablo Pavon-Marino - Jose-Luis Izquierdo-Zaragoza, up to version 0.3.1 * Pablo Pavon-Marino - from version 0.4.0 onwards ******************************************************************************/ import javax.swing.text.MutableAttributeSet; import javax.swing.text.html.HTML; import javax.swing.text.html.HTMLEditorKit; import javax.swing.text.html.parser.ParserDelegator; import java.io.*; import java.net.URL; import java.util.Set; import java.util.TreeSet; public class Main { private static String prepareImagePath(String html, URL url) { final Set<String> list = new TreeSet<String>(); final ParserDelegator parserDelegator = new ParserDelegator(); final HTMLEditorKit.ParserCallback parserCallback = new HTMLEditorKit.ParserCallback() { @Override public void handleText(final char[] data, final int pos) { } @Override public void handleStartTag(HTML.Tag tag, MutableAttributeSet attribute, int pos) { if (tag == HTML.Tag.IMG) { String address = (String) attribute.getAttribute(HTML.Attribute.SRC); list.add(address); } } @Override public void handleEndTag(HTML.Tag t, final int pos) { } @Override public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, final int pos) { if (t == HTML.Tag.IMG) { String address = (String) a.getAttribute(HTML.Attribute.SRC); list.add(address); } } @Override public void handleComment(final char[] data, final int pos) { } @Override public void handleError(final String errMsg, final int pos) { } }; final Reader reader = new StringReader(html); try { parserDelegator.parse(reader, parserCallback, true); } catch (IOException e) { throw new RuntimeException(e); } for (String item : list) { try { URL newURL = new URL(url, item); html = html.replace(item, newURL.toExternalForm()); } catch (Throwable e) { throw new RuntimeException(e); } } return html; } }