11

私のSSRS DataSetは HTML を含むフィールドを返します。

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

すべての HTML タグを削除するにはどうすればよいですか? インラインVB.NETで行う必要があります

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

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

4

5 に答える 5

14

ダニエルに感謝しますが、インラインで実行する必要がありました...ここに解決策があります:

= 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

于 2008-08-29T18:50:57.727 に答える
3

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

于 2008-08-29T18:19:47.410 に答える
1

正規表現を使用したくない場合 (たとえば、より良いパフォーマンスが必要な場合)は、私が少し前に書いた CodeProject に投稿された小さなメソッドを試すことができます。

于 2008-08-31T01:31:02.763 に答える
1

[レポート プロパティ] に移動し、次のコードを記述して追加します。

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 タグを削除できます。

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

于 2014-05-21T11:19:09.193 に答える
1

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

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

于 2008-08-29T18:23:18.713 に答える