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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top