我的SSRS 数据集返回一个带有 HTML 的字段,例如
<b>blah blah </b><i> blah </i>.
我如何去除所有的 HTML 标签?必须使用内联VB.NET来完成
更改表中的数据不是一种选择。
找到解决方案... = System.Text.RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")
我的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标签。
在我看来,这比拥有多个正则表达式副本更可取。