Вопрос

мой Набор данных SSRS возвращает поле с HTML-кодом, например

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

как мне удалить все HTML-теги?с этим нужно покончить встроенный VB.NET

Изменение данных в таблице - это не вариант.

Решение найдено ...= System.Text.RegularExpressions.Regex.Replace(Строка с htmltostrip, "<[^>]+>","")

Это было полезно?

Решение

Спасибо Дэниелу, но мне нужно было, чтобы это было сделано встроенно ...вот решение:

= 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