Ответ 1
Я понимаю, что вы хотите использовать тот же подход, что и SO. Для ввода данных необходимо иметь столбцы БД 2: один для необработанных данных (чтобы его можно было повторно отобразить в редакторе) и один с белыми/удержанными данными (чтобы он мог отображаться на выходе). Я предполагаю, что у них есть еще один столбец, указывающий версию данных с белыми/уцененными данными. Версия хранится в настраиваемой переменной приложения. Всякий раз, когда запрашиваются данные с белыми или уцененными значениями, в то время как версия была изменена, она будет переименована/потеряна на основе исходных данных.
Отметить часть в сторону, вы просто хотите, чтобы белый список данных, в Java вы можете использовать
Jsoup для этого. Обратите внимание, что он не кодирует нежелательные HTML-теги, он просто удаляет их. Jsoup Whitelist
API предлагает несколько предопределенных белых списков, а также позволяет настраивать их. Вот пример того, как вы можете использовать его с Whitelist#basic()
:
String whitelistedHtml = Jsoup.clean(rawHtml, Whitelist.basic());
// ...
Этот белый список позволяет в соответствии с javadoc следующие HTML-теги:
a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, strike, strong, sub, sup, u, ul