Rimuovi HTML dalla stringa in SSRS 2005 (VB.NET)
-
09-06-2019 - |
Domanda
Mio Set di dati SSRS restituisce un campo con HTML, ad es.
<b>blah blah </b><i> blah </i>.
come faccio a rimuovere tutti i tag HTML?bisogna farla finita in linea VB.NET
La modifica dei dati nella tabella non è un'opzione.
Soluzione trovata ...= System.Text.RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")
Soluzione
Grazie a Daniel, ma avevo bisogno che fosse fatto in linea...ecco la soluzione:
= System.Text.RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")
Ecco i link:
http://weblogs.asp.net/rosherove/archive/2003/05/13/6963.aspx
http://msdn.microsoft.com/en-us/library/ms157328.aspx
Altri suggerimenti
Ecco un buon esempio di utilizzo delle espressioni regolari: http://www.4guysfromrolla.com/webtech/042501-1.shtml
Se sai che l'HTML è sufficientemente ben formato, potresti, se ti assicuri che abbia un nodo radice, convertire i dati in quel campo in un System.Xml.XmlDocument e quindi ottenere il valore InnerText da esso.
Ancora una volta, dovrai assicurarti che il testo abbia un nodo radice, che puoi aggiungere tu stesso se necessario, poiché non avrà importanza, e assicurarti che l'HTML sia ben formato.
Se non vuoi utilizzare le espressioni regolari (ad esempio se hai bisogno di prestazioni migliori) puoi provare un piccolo metodo che ho scritto qualche tempo fa, pubblicato su CodeProject.
Vorrei andare su Proprietà report, quindi codificare e aggiungere quanto segue
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
Quindi puoi usare Code.RemoveHtml(Fields!Content.Value)
per rimuovere i tag html.
A mio parere questo è preferibile rispetto ad avere più copie della regex.