Встраивание HTML в XHTML - PullRequest
       6

Встраивание HTML в XHTML

2 голосов
/ 15 марта 2011

У меня есть страница JSF, которая выводит XHTML (из лицевой стороны). В одном из полей есть пользовательский HTML, который вызывает ошибки синтаксического анализа в моем веб-браузере (Safari).

Я понимаю, что это потому, что XHTML является строгим и следует правилам XML, в отличие от HTML. Каков наилучший способ встраивания этого HTML, избегая при этом фатальных ошибок при разборе?

Одна вещь, о которой я подумал, - это заменить все экземпляры скажем
на
, но должно быть лучшее решение, чем это.

Вот еще один пример того, что мне нужно встроить:

Это мой пример текста.
Адрес: Ветер и Огонь.

Обратите внимание, что тег разрыва строки должен быть самодостаточным, а амперсанд, вероятно, должен быть & aamp;

1 Ответ

2 голосов
/ 15 марта 2011

Используйте анализатор HTML, который возвращает правильно сформированный синтаксис HTML. Я могу порекомендовать Jsoup для этого.

Пример запуска:

String userHtml = "foo<br>bar&baz";
String wellFormedHtml = Jsoup.parse(userHtml).body().html();
System.out.println(wellFormedHtml); // foo<br />bar&amp;baz

Просто примените это один раз, когда собираетесь обрабатывать введенный пользователем ввод.

Jsoup также предлагает больше преимуществ, таких как Белый список , который можно использовать для удаления потенциального вредоносного кода HTML / JS, который может открыть дыры для атаки XSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...