質問

私の SSRS データセット HTML を含むフィールドを返します。

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

すべての HTML タグを削除するにはどうすればよいですか?でやらなければならない 列をなして VB.NET

テーブル内のデータを変更することはできません。

解決策が見つかりました ...= System.Text. RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")

役に立ちましたか?

解決

ダニエルに感謝しますが、インラインで行う必要がありました...解決策は次のとおりです。

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

リンクは次のとおりです。

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

他のヒント

正規表現を使用した良い例を次に示します。 http://www.4guysfromrolla.com/webtech/042501-1.shtml

HTML が十分に整形式であることがわかっている場合、ルート ノードがあることを確認すれば、そのフィールドのデータを System.Xml.XmlDocument に変換し、そこから InnerText 値を取得できます。

繰り返しますが、テキストにルート ノードがあることを確認する必要があります。ルート ノードは重要ではないため、必要に応じて自分で追加できます。また、HTML が適切な形式であることを確認する必要があります。

正規表現を使用したくない場合(たとえば、パフォーマンスを向上させる必要がある場合)、試してみることができます 私が少し前に書いた小さなメソッド、CodeProject に投稿されました.

「レポートのプロパティ」に移動し、次のコードを追加します。

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

その後、使用できます Code.RemoveHtml(Fields!Content.Value) htmlタグを削除します。

私の意見では、正規表現のコピーを複数持つよりもこの方が望ましいと考えています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top