Я пытаюсь использовать jsoup.clean с
Whitelist.relaxed().preserveRelativeLinks(true);
Jsoup.clean(html, wl);
Мой html - это строка message = "This is a simple string messages with double spaces"
В строке есть двойные пробелы. Но когда я делаю .clean()
, он сокращает пробелы. Я хочу сохранить эти пространства. Как мне это сделать? Событие .basic()
и .simpleText()
не работает.
@RahalKanishka, я хочу сохранить строку такой, какая она есть ... если в ней есть двойные / одинарные / табуляция, она должна быть такой, какая есть
Можете ли вы уточнить, что вы действительно хотите делать с этим примером String
@RahalKanishka это параметр запроса в URL-адресе. Поэтому, чтобы избежать XSS, я использую jsoup, поскольку пользователь может добавить в него скрипт. Теперь, когда у меня есть нормальная строка и если между «с двойным» есть 2 пробела, если вы видите, что это обрезается. Я хочу этого избежать.
JSoup предназначен только для обработки ввода HTML. Для других входных данных вы предотвращаете XSS, кодируя выходные данные. См. Правила №0 и №1 по адресу: owasp.org/index.php/…
Есть перегрузка для clean
, который принимает объект Document.outputSettings
:
public static String clean(String bodyHtml, String baseUri, Safelist safelist, Document.OutputSettings outputSettings)
Используя это, вы можете установитьprettyPrint
в ложь:
public boolean prettyPrint()
Get if pretty printing is enabled. Default is true. If disabled, the HTML output methods will not re-format the output, and the output will generally look like the input.
В итоге получается что-то вроде этого:
Whitelist.relaxed().preserveRelativeLinks(true);
Jsoup.clean(html, "", wl, new Document.OutputSettings().prettyPrint(false));
Это должно дать вам то, что вы ищете.
спасибо за ответ, я уже получил это работает с довольно ложным. Забыл обновить его здесь.
Я не думаю, что вы могли бы отметить это как ответ, тогда @Swaprks?
Вы хотите сохранить максимум одно пространство?