Pregunta

mi Conjunto de datos SSRS devuelve un campo con HTML, p.e.

<b>blah blah </b><i> blah </i>.

¿Cómo elimino todas las etiquetas HTML?tiene que hacerse con en línea VB.NET

Cambiar los datos de la tabla no es una opción.

Solución encontrada ...= System.Text.RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")

¿Fue útil?

Solución

Gracias a Daniel, pero necesitaba que se hiciera en línea...aquí está la solución:

= System.Text.RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")

Aquí están los enlaces:

http://weblogs.asp.net/rosherove/archive/2003/05/13/6963.aspx
http://msdn.microsoft.com/en-us/library/ms157328.aspx

Otros consejos

Aquí hay un buen ejemplo usando expresiones regulares: http://www.4guysfromrolla.com/webtech/042501-1.shtml

Si sabe que el HTML está lo suficientemente bien formado, puede, si se asegura de que tenga un nodo raíz, convertir los datos de ese campo en un System.Xml.XmlDocument y luego obtener el valor de InnerText.

Nuevamente, tendrás que asegurarte de que el texto tenga un nodo raíz, que puedes agregar tú mismo si es necesario, ya que no importará, y asegurarte de que el HTML esté bien formado.

Si no desea utilizar expresiones regulares (por ejemplo, si necesita un mejor rendimiento), puede intentar un pequeño método que escribí hace un tiempo, publicado en CodeProject.

Iría a Propiedades del informe y luego codificaría y agregaría lo siguiente

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

Entonces puedes usar Code.RemoveHtml(Fields!Content.Value) para eliminar las etiquetas html.

En mi opinión, esto es preferible que tener varias copias de la expresión regular.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top