Как удалить все теги HTML из строки, не зная, какие теги находятся в ней?
Есть ли какой-либо простой способ удалить все теги HTML или НИЧЕГО HTML, связанные с строкой?
Например:
string title = "<b> Hulk Hogan Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )"
Вышеупомянутое должно быть действительно:
"Hulk Hogan Celebrity Championship Wrestling [Proj # 206010] (Серия Реальности)"
Ответы
Ответ 1
Вы можете использовать простое регулярное выражение:
public static string StripHTML(string input)
{
return Regex.Replace(input, "<.*?>", String.Empty);
}
Помните, что это решение имеет свои недостатки. Подробнее см. Удалить теги HTML в String (особенно комментарии @mehaase )
Другим решением будет использование HTML Agility Pack.
Вы можете найти пример с помощью библиотеки здесь: пакет гибкости HTML - удаление ненужных тегов без удаления содержимого?
Ответ 2
Вы можете проанализировать строку с помощью Html Agility pack и получить InnerText.
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(@"<b> Hulk Hogan Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )");
string result = htmlDoc.DocumentNode.InnerText;
Ответ 3
Вы можете использовать приведенный ниже код в своей строке, и вы получите полную строку без части html.
string title = "<b> Hulk Hogan Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )".Replace(" ",string.Empty);
string s = Regex.Replace(title, "<.*?>", String.Empty);