سؤال

لي مجموعة بيانات 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.

في رأيي، هذا أفضل من الحصول على نسخ متعددة من التعبير العادي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top