我的 SSRS数据集 返回一个 HTML 字段,例如

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

如何去除所有 HTML 标签?必须完成 排队 网络

更改表中的数据不是一种选择。

找到解决方案 ...= 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