#java #jsoup
Вопрос:
У меня есть этот код:
Whitelist whitelist = Whitelist.relaxed();
String test = "<a href="index.html?Proxy-Remote-User=ABC1">"
С помощью Jsoup, если я запущу
Jsoup.isValid(test, whitelist)
Он возвращает значение false. Я думаю, это из-за отсутствия протокола. Есть ли способ сделать это приемлемым?
Комментарии:
1. Во-первых, в вашем примере отсутствуют кавычки. Но я предполагаю, что это, возможно, потому, что отсутствует закрывающий тег (
</a>
)?2. Я уверен, что есть обходной путь, где вы можете добавить абсолютный путь к началу URL-адреса перед проверкой(если вы не хотите изменять ссылки вручную).
Ответ №1:
Whitelist
устарело, используйте Safelist
вместо этого. Ваше предположение верно, проблема в протоколе. Я думаю, что вы должны использовать полный URL-адрес(с указанием http или https). Я заставил его работать с этим:
test ="<a href="https:\www.somesite\index.html?Proxy-Remote-User=ABC1">";
System.out.println("Is valid:" Jsoup.isValid(test, safelist));
Выход:
Is valid:true
Комментарии:
1.
addProtocols("a","href","http");
в этом нет необходимости. Вrelaxed
белом списке они уже определены какaddProtocols("a", "href", "ftp", "http", "https", "mailto")
.