Retirar HTML da string no SSRS 2005 (VB.NET)
-
09-06-2019 - |
Pergunta
meu Conjunto de dados SSRS retorna um campo com HTML, por exemplo.
<b>blah blah </b><i> blah </i>.
como faço para remover todas as tags HTML?tem que ser feito com em linha VB.NET
Alterar os dados da tabela não é uma opção.
Solução encontrada ...= System.Text.RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")
Solução
Obrigado ao Daniel, mas eu precisava que fosse feito inline ...aqui está a solução:
= System.Text.RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")
Aqui estão os links:
http://weblogs.asp.net/rosherove/archive/2003/05/13/6963.aspx
http://msdn.microsoft.com/en-us/library/ms157328.aspx
Outras dicas
Aqui está um bom exemplo usando expressões regulares: http://www.4guysfromrolla.com/webtech/042501-1.shtml
Se você sabe que o HTML está bem formado o suficiente, você pode, se tiver certeza de que ele possui um nó raiz, converter os dados desse campo em System.Xml.XmlDocument e obter o valor InnerText dele.
Novamente, você terá que ter certeza de que o texto tem um nó raiz, que você mesmo pode adicionar se necessário, já que isso não importa, e ter certeza de que o HTML está bem formado.
Se você não quiser usar expressões regulares (por exemplo, se precisar de melhor desempenho), você pode tentar um pequeno método que escrevi há algum tempo, postado no CodeProject.
Eu iria para Propriedades do Relatório e então codificaria e adicionaria o seguinte
Dim mRemoveTagRegex AS NEW System.Text.RegularExpressions.Regex("<(.|\n)+?>", System.Text.RegularExpressions.RegexOptions.Compiled)
Function RemoveHtml(ByVal text As string) AS string
If text IsNot Nothing Then
Return mRemoveTagRegex.Replace(text, "")
End If
End Function
Então você pode usar Code.RemoveHtml(Fields!Content.Value)
para remover as tags html.
Na minha opinião, isso é preferível a ter várias cópias do regex.