Как Вы преобразовываете HTML в простой текст?

87
задан Michel Ayres 27 May 2012 в 19:05
поделиться

6 ответов

Если Вы говорите о разделении тега, это является относительно прямым, если Вы не должны волноваться о вещах как <script> теги. Если все, что необходимо сделать, отобразить текст без тегов, можно выполнить это с регулярным выражением:

<[^>]*>

, Если действительно необходимо взволновать [приблизительно 112] теги и т.п. тогда, Вам будет нужно что-то немного более мощное тогда регулярные выражения, потому что необходимо отследить состояние, omething больше как Контекстно-свободная грамматика (CFG). Althought Вы могли бы быть в состоянии выполнить его с 'Левым к правильному' или нежадному соответствию.

, Если можно использовать регулярные выражения, существует много веб-страниц там с хорошей информацией:

, Если бы Вам нужно более сложное поведение CFG, я предложил бы использовать сторонний инструмент, к сожалению, я не знаю о хорошем для рекомендации.

23
ответ дан vfilby 24 November 2019 в 07:44
поделиться

общедоступный статический строковый StripTags2 (представляют HTML в виде строки) {HTML возврата. Замена (" <"; "<";).Replace (">", ">";);}

этим Вы выходите из всего "<"; и">" в строке. Это то, что Вы хотите?

-4
ответ дан José Leal 24 November 2019 в 07:44
поделиться

Зависит от того, что Вы подразумеваете под "HTML". Самый сложный случай был бы полными веб-страницами. Это является также самым легким обработать, так как можно использовать веб-браузер текстового режима. Посмотрите статья Wikipedia перечислять веб-браузеры, включая браузеры текстового режима. Lynx является, вероятно, самым известным, но один из других может быть лучше для Ваших потребностей.

0
ответ дан mpez0 24 November 2019 в 07:44
поделиться

Если у Вас есть данные, которые имеют HTML-тэги, и Вы хотите отобразить их так, чтобы человек видел теги, используйте HttpServerUtility:: HtmlEncode.

, Если у Вас есть данные, которые имеют HTML-тэги в нем и Вы хотите, чтобы пользователь видел представленные теги, затем отобразил текст, как. Если текст представляет всю веб-страницу, используйте IFRAME для него.

, Если у Вас есть данные, которые имеют HTML-тэги и Вы хотите разделить теги и просто отобразить неформатированный текст, использовать регулярное выражение.

2
ответ дан Corey Trager 24 November 2019 в 07:44
поделиться

HTTPUtility.HTMLEncode() предназначен для обработки HTML-тэгов кодирования как строк. Это заботится обо всем тяжелом подъеме для Вас. От Документация MSDN :

, Если символы, такие как пробелы и пунктуация передаются в потоке HTTP, они могли бы быть неправильно истолкованы в принимающем конце. Кодирование HTML преобразовывает символы, которые не позволяются в HTML в эквиваленты символьной сущности; декодирование HTML инвертирует кодирование. Например, когда встроено в блок текста, символы < и >, кодируются как &lt; и &gt; для передачи HTTP.

HTTPUtility.HTMLEncode() метод, подробно изложенный здесь :

public static void HtmlEncode(
  string s,
  TextWriter output
)

Использование:

String TestString = "This is a <Test String>.";
StringWriter writer = new StringWriter();
Server.HtmlEncode(TestString, writer);
String EncodedString = writer.ToString();
20
ответ дан George Stocker 24 November 2019 в 07:44
поделиться

Бесплатный и открытый исходный код HtmlAgilityPack содержит в одном из примеров метода, который преобразует HTML в обычный текст.

var plainText = HtmlUtilities.ConvertToPlainText(string html);

Подайте ему строку HTML, например

<b>hello, <i>world!</i></b>

, и вы получите результат в виде простого текста, например:

hello world!
90
ответ дан 24 November 2019 в 07:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: