Existe alguma maneira fácil de remover todas as tags HTML ou QUALQUER COISA HTML relacionada de uma string?
Por exemplo:
string title = "<b> Hulk Hogan's Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )"
O acima deve realmente ser:
"Wrestling no campeonato de celebridades de Hulk Hogan [Proj # 206010] (Reality Series)"
xidel -s input -e '/'
.Respostas:
Você pode usar um regex simples como este:
Esteja ciente de que esta solução tem sua própria falha. Consulte Remover tags HTML em String para obter mais informações (especialmente os comentários de @mehaase)
Outra solução seria usar o HTML Agility Pack .
Você pode encontrar um exemplo usando a biblioteca aqui: Pacote de agilidade HTML - removendo tags indesejadas sem remover o conteúdo?
fonte
< 10 <b>
e</b>
são removidos.Você pode analisar a string usando o pacote Agility Html e obter o InnerText.
fonte
InnerText
solução, pois remove todas as tags. Mas ... que deixa para trás
e também marcas de comentário, como<!-- xxx -->
como aqueles que rodeiamv:shapetype
,v:shape
ouv:imagedata
com[if gte vml 1]
ou[if !vml]
é uma entidade html, e não uma tag, por isso, uma solução para remover que poderia serresult = WebUtility.HtmlDecode(result);
e para remover os nós de comentário, usando a agilidade Pacote Html:htmlDoc.DocumentNode.SelectNodes("//comment()")?.ForEach(c=> c.Remove());
pouco antes de fazerresult = htmlDoc.DocumentNode.InnerText;
Você pode usar o código abaixo na sua string e obterá a string completa sem a parte html.
fonte