Удалить <div>из текстового файла? - PullRequest
3 голосов
/ 30 марта 2009

Я создал небольшую программу на C # .net, которая на самом деле не выполняет большую часть цели, она говорит вам о вероятности вашего DOOM, основываясь на сегодняшних новостях LOL. Он принимает RSS при загрузке с веб-сайта BBC и затем ищет ключевые слова, которые либо увеличивают процентную вероятность DOOM.

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

Я получаю RSS в формате xml, но он содержит много тегов div и символов форматирования, которые я не хочу использовать в базе данных ключевых слов,

Каков наилучший способ удаления этих нежелательных персонажей и персонажей?

Спасибо,

Ash

Ответы [ 4 ]

4 голосов
/ 30 марта 2009

Если вы хотите удалить также теги DIV WITH content:

string start = "<div>";
string end = "</div>";
string txt = Regex.Replace(htmlString, Regex.Escape(start) + "(?<data>[^" + Regex.Escape(end) + "]*)" + Regex.Escape(end), string.Empty);

Ввод: <xml><div>junk</div>XXX<div>junk2</div></xml>

Выход: <xml>XXX</xml>

4 голосов
/ 30 марта 2009

ИМХО самый простой способ - использовать регулярные выражения. Что-то вроде:

string txt = Regex.Replace(htmlString, @"<(.|\n)*?>", string.Empty);

В зависимости от того, какие теги и символы вы хотите удалить, вы, конечно, будете изменять регулярное выражение. Вы найдете много материала об этом и других методах, если выполните поиск в Интернете для 'strip html C #' .

ТАК вопрос Рендеринг или преобразование HTML в «отформатированный» текст (.NET) также может вам помочь.

2 голосов
/ 30 марта 2009

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

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

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

1 голос
/ 30 марта 2009

Регулярное выражение, например:

<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)</\1> 

Подсветит все теги HTML.

Используйте это, чтобы удалить их из ваших данных.

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