在<img>标签中接受JSoup clean中的相对路径

st1*_*st1 7 jsoup

以下是我需要解析的文本示例.

<P>The symbol <IMG id="pic1" height=15 src="images/itemx/image001.gif" width=18>indicates......</P>
Run Code Online (Sandbox Code Playgroud)

我需要进行清理.因此,应用以下代码将删除src属性,因为它不以有效协议开头.无论如何配置Jsoup来获取属性?我想尽可能避免使用绝对网址.

Jsoup.clean(content, Whitelist.basicWithImages());
Run Code Online (Sandbox Code Playgroud)

Jon*_*ley 8

jsoup清洁器将允许相对链接,只要base URI在清洁时指定a .这样就可以根据允许的协议确认链路的协议.请注意,在您的示例中,您使用的是没有基URI的clean方法,因此无法解析链接,因此必须将其删除.

例如:

String clean = Jsoup.clean(html, "http://example.com/", 
   Whitelist.basicWithImages());
Run Code Online (Sandbox Code Playgroud)

请注意,在当前版本中,清理后任何相对链接都将转换为绝对链接.我刚刚提交了一个更改(在下一个版本中提供),它可以选择允许保留相对链接.

语法将是:

String clean = Jsoup.clean(html, "http://example.com/",
    Whitelist.basicWithImages().preserveRelativeLinks(true));
Run Code Online (Sandbox Code Playgroud)