Принудительное завершение тегов в сегментах HTML или игнорирование отсутствующих конечных тегов - PullRequest
0 голосов
/ 22 августа 2009

При создании RSS-ленты, которая показывает подмножество HTML-документа большего размера (первые x символов), я столкнулся с проблемой, когда некоторые теги начинаются с «первых x символов», но конечный тег находится вне этого диапазона. Это может вызвать некоторые забавные проблемы, если пользователь канала пытается отобразить html в канале, так как это может вызвать непредвиденные проблемы рендеринга на странице, показывающей канал.

Я предполагаю, что это распространенная проблема, которую авторы и читатели rss-каналов давно решили, но я не могу понять, как этого добиться, если не попытаться проанализировать html в фиде и добавить недостающие конечные теги, запутаться Любые предложения будут с благодарностью. Заранее спасибо.

Chris

Ответы [ 3 ]

0 голосов
/ 22 августа 2009

Не уверен, что это будет работать для вашего проекта, но я использую HTML Tidy для этого в FeedDemon.

0 голосов
/ 23 августа 2009

Откуда берется документ большего размера? Если есть исходный текст, из которого генерируется HTML, то намного легче усечь это и заново сгенерировать HTML из усеченной версии, чем решать проблемы обработки частичного HTML. Чтобы сделать это вообще правильно, вам, в основном, придется заново анализировать и сериализовать HTML.

HTML внутри RSS все еще проблематичен. Возможно, вам лучше убрать все теги и сделать простое усечение текста над тем, что осталось.

0 голосов
/ 22 августа 2009

Если вы используете php, отличным решением будет HTMLPurifier . Это очистит его и сделает его полностью безопасным для повторной передачи.

...