HTML белый список в C # - PullRequest
       42

HTML белый список в C #

5 голосов
/ 22 июня 2011

Потратил около 30 минут или около того, чтобы найти окончательное решение этой проблемы.

Этот вопрос, похоже, задавался много раз, но ...

  • В большинстве решений используются регулярные выражения.
  • Во многих публикациях говорится, что регулярные выражения не следует использовать для обработки html.
  • Существует множество ответов, просто дающих ссылку на HTMLAgilityPack (наCodeplex), но нет реальных примеров того, как использовать этот пакет для удовлетворения заявленных требований.

Поэтому я ищу лучшее решение, отвечающее следующим требованиям.

  • Я хочу предоставить список позволенных тегов HTML.
  • Все теги, отсутствующие в списке разрешенных, должны быть удалены вместе с их атрибутами и содержимым.
  • Все теги вразрешенный список должен быть сохранен с атрибутами и содержимым.
  • Решение должно справляться с различными локализациями - возможно, пользователи используют другие языки и наборы символов.будут использоваться не те, которые используются в английском языке.
  • [Добавлено] Решение должно обрабатывать текст, такой как сообщение на форуме, в отличие от полной HTML-страницы - так что такие теги, как bui и т. д. будут разрешены, но скрипт div и т. д.не разрешено и должно быть удалено.

Я ищу решение C # и , если лучше всего использовать RegEx, тогда я рад это сделать.Если есть существующая библиотека, которая может сделать это, я также рад использовать их.Буду признателен за пример кода, где это возможно.

Я ищу определенный и испытанный метод решения этой проблемы, в отличие от широких дебатов + закрытые посты и т. Д. :):)

Спасибозаранее.

1 Ответ

1 голос
/ 22 июня 2011

Вы можете использовать Html Agility Pack для анализа HTML. Затем вы можете работать с элементами так, как вам нравится, и снова записывать их в HTML.

...