11

我的SSRS 数据集返回一个带有 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

如果您知道 HTML 的格式足够好,那么您可以在确保它具有根节点的情况下将该字段中的数据转换为 System.Xml.XmlDocument,然后从中获取 InnerText 值。

同样,您必须确保文本有一个根节点,如果需要,您可以自己添加它,因为这无关紧要,并确保 HTML 格式正确。

于 2008-08-29T18:23:18.713 回答
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 回答