私のSSRS DataSetは HTML を含むフィールドを返します。
<b>blah blah </b><i> blah </i>.
すべての HTML タグを削除するにはどうすればよいですか? インラインVB.NETで行う必要があります
テーブル内のデータを変更することはできません。
解決策が見つかりました... = System.Text.RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")
私のSSRS DataSetは 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
正規表現を使用したくない場合 (たとえば、より良いパフォーマンスが必要な場合)は、私が少し前に書いた 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 タグを削除できます。
私の意見では、これは正規表現の複数のコピーを持つよりも望ましいです。
HTML の形式が適切であることがわかっている場合は、ルート ノードがあることを確認して、そのフィールドのデータを System.Xml.XmlDocument に変換し、そこから InnerText 値を取得できます。
繰り返しになりますが、テキストにルート ノードがあることを確認する必要があります。ルート ノードは必要に応じて自分で追加できます。これは重要ではないため、HTML が適切に形成されていることを確認してください。