Декодирование всех HTML-объектов - PullRequest
22 голосов
/ 02 декабря 2011

Я ищу какую-то функцию, которая будет декодировать большое количество сущностей HTML.

Причина в том, что я работаю над некоторым кодом, чтобы взять содержимое HTML и превратить его в простой текст, проблема, которая у меня естьмногие сущности не преобразуются с использованием HttpUtility.HtmlDecode.

Вот некоторые примеры сущностей, о которых я беспокоюсь: &, ©.

Это для .net 3.5 .

Ответы [ 2 ]

30 голосов
/ 02 декабря 2011

Тогда, может быть, вам понадобится HttpUtility .HtmlDecode ?. Это должно работать, вам просто нужно добавить ссылку на System.Web. По крайней мере, так было в .Net Framework <4. </p>

Например, следующий код:

MessageBox.Show(HttpUtility.HtmlDecode("&amp;&copy;"));

Сработало, и результат был, как и ожидалось (символ амперсанда и символ авторского права) Вы уверены, что проблема в HtmlDecode, а не в чем-то еще?

ОБНОВЛЕНИЕ: Другой класс, способный выполнять эту работу, WebUtility (снова метод HtmlDecode), появился в более новых версиях .Net. Однако с этим, похоже, есть некоторые проблемы. См. Вопрос HttpUtility vs. WebUtility .

23 голосов
/ 02 декабря 2011

Использование WebUtility.HtmlDecode, включенное в .Net 4

Например, если я запускаю в консольном приложении:

  Console.WriteLine(WebUtility.HtmlDecode("&nbsp;, &amp;, &copy;"));

Я получаю , &, c

...