Frage

Mein SSRS-Datensatz gibt ein Feld mit HTML zurück, z.B.

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

Wie entferne ich alle HTML-Tags?muss erledigt werden im Einklang VB.NET

Eine Änderung der Daten in der Tabelle ist keine Option.

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

War es hilfreich?

Lösung

Vielen Dank an Daniel, aber ich musste es inline erledigen ...hier ist die Lösung:

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

Hier sind die Links:

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

Andere Tipps

Hier ist ein gutes Beispiel für die Verwendung regulärer Ausdrücke: http://www.4guysfromrolla.com/webtech/042501-1.shtml

Wenn Sie wissen, dass der HTML-Code wohlgeformt genug ist, können Sie, wenn Sie sicherstellen, dass er über einen Stammknoten verfügt, die Daten in diesem Feld in ein System.Xml.XmlDocument konvertieren und daraus dann den InnerText-Wert abrufen.

Auch hier müssen Sie sicherstellen, dass der Text einen Wurzelknoten hat, den Sie bei Bedarf selbst hinzufügen können, da er keine Rolle spielt, und sicherstellen, dass der HTML-Code wohlgeformt ist.

Wenn Sie keine regulären Ausdrücke verwenden möchten (z. B. wenn Sie eine bessere Leistung benötigen), können Sie es versuchen Eine kleine Methode, die ich vor einiger Zeit geschrieben und bei CodeProject gepostet habe.

Ich würde zu den Berichtseigenschaften gehen und dann Folgendes codieren und hinzufügen

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

Dann können Sie verwenden Code.RemoveHtml(Fields!Content.Value) um die HTML-Tags zu entfernen.

Meiner Meinung nach ist dies besser, als mehrere Kopien der Regex zu haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top