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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top