Jsoup удаляет несколько пробелов в строке

Я пытаюсь использовать jsoup.clean с

    Whitelist.relaxed().preserveRelativeLinks(true);
    Jsoup.clean(html, wl);

Мой html - это строка message = "This is a simple string messages with double spaces"

В строке есть двойные пробелы. Но когда я делаю .clean(), он сокращает пробелы. Я хочу сохранить эти пространства. Как мне это сделать? Событие .basic() и .simpleText() не работает.

Вы хотите сохранить максимум одно пространство?

Rahal Kanishka 23.10.2018 06:34

@RahalKanishka, я хочу сохранить строку такой, какая она есть ... если в ней есть двойные / одинарные / табуляция, она должна быть такой, какая есть

Swaprks 23.10.2018 07:46

Можете ли вы уточнить, что вы действительно хотите делать с этим примером String

Rahal Kanishka 23.10.2018 08:47

@RahalKanishka это параметр запроса в URL-адресе. Поэтому, чтобы избежать XSS, я использую jsoup, поскольку пользователь может добавить в него скрипт. Теперь, когда у меня есть нормальная строка и если между «с двойным» есть 2 пробела, если вы видите, что это обрезается. Я хочу этого избежать.

Swaprks 23.10.2018 14:00

JSoup предназначен только для обработки ввода HTML. Для других входных данных вы предотвращаете XSS, кодируя выходные данные. См. Правила №0 и №1 по адресу: owasp.org/index.php/…

fgb 23.10.2018 22:40
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
5
370
1

Ответы 1

Есть перегрузка для 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 07.04.2021 04:57

Я не думаю, что вы могли бы отметить это как ответ, тогда @Swaprks?

mjlev 19.08.2021 21:44

Другие вопросы по теме