SSRS 2005(VB.NET)의 문자열에서 HTML 제거
-
09-06-2019 - |
문제
나의 SSRS 데이터 세트 HTML이 포함된 필드를 반환합니다.
<b>blah blah </b><i> blah </i>.
HTML 태그를 모두 제거하려면 어떻게 해야 하나요?해야 할 일 인라인 VB.NET
테이블의 데이터를 변경하는 것은 옵션이 아닙니다.
해결책을 찾았습니다. ...= System.Text.RegularExpressions.Regex.Replace(StringWithHTMLtoStrip, "<[^>]+>","")
해결책
Daniel에게 감사합니다. 하지만 인라인으로 처리해야 했습니다...해결책은 다음과 같습니다.
= 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 태그를 제거하려면
내 생각에는 정규식의 복사본을 여러 개 갖는 것보다 이것이 더 바람직하다고 생각합니다.