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, "<[^>]+>","")

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top