Supprimer le HTML de la chaîne dans SSRS 2005 (VB.NET)
-
09-06-2019 - |
Question
mon Ensemble de données SSRS renvoie un champ avec HTML, par ex.
<b>blah blah </b><i> blah </i>.
comment supprimer toutes les balises HTML ?il faut en finir avec en ligne VB.NET
Changer les données du tableau n'est pas une option.
Solution trouvée ...= System.Text.RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")
La solution
Merci à Daniel, mais j'avais besoin que cela se fasse en ligne...voici la solution :
= System.Text.RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")
Voici les liens :
http://weblogs.asp.net/rosherove/archive/2003/05/13/6963.aspx
http://msdn.microsoft.com/en-us/library/ms157328.aspx
Autres conseils
Voici un bon exemple utilisant des expressions régulières : http://www.4guysfromrolla.com/webtech/042501-1.shtml
Si vous savez que le HTML est suffisamment bien formé, vous pouvez, si vous vous assurez qu'il possède un nœud racine, convertir les données de ce champ en System.Xml.XmlDocument, puis en obtenir la valeur InnerText.
Encore une fois, vous devrez vous assurer que le texte possède un nœud racine, que vous pourrez ajouter vous-même si besoin est, car cela n'aura pas d'importance, et vous assurer que le HTML est bien formé.
Si vous ne souhaitez pas utiliser d'expressions régulières (par exemple si vous avez besoin de meilleures performances), vous pouvez essayer une petite méthode que j'ai écrite il y a quelque temps, publiée sur CodeProject.
J'irais dans les propriétés du rapport, puis je coderais et j'ajouterais ce qui suit
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
Ensuite, vous pouvez utiliser Code.RemoveHtml(Fields!Content.Value)
pour supprimer les balises html.
À mon avis, c'est préférable plutôt que d'avoir plusieurs copies de l'expression régulière.