Bir metnin içindeki HTML etiketlerini temizlemek için çözüm yolları ararken, çok ilginç bir çözüm ile karşılaştım. Bu ve benzeri durumlarda genellikle ilk olarak, problemi kendim nasıl çözerim diye düşünürüm. İlk aklıma gelen, düzgün yapılandırılmış bir düzenli ifade (regular expression) ile metnin içindeki tüm HTML etiketlerini temizlemek oldu. Uygulamaya geçmeden önce bir de internette araştırayım dedim ve burada probleme çok ilginç bir yönden yaklaşan bir çözüm buldum. Makalede benim aklıma da gelen düzenli ifadeler ile karşılaştırma da yapılmış ve makalede görebileceğiniz gibi bu yöntem çok daha hızlı çalışıyor. Bunun en önemli sebebi de çok yalın bir mantık kullanılmış olması.
Makalede yazılanları tekrar etmek istemiyorum. Metodun C# ve VB.NET sürümlerini aşağıya ekliyorum.
Metodun C# sürümü
public string StripTags(string input) { char[] charArray = new char[input.Length]; int arrayIndex = 0; bool inside = false; for (int i = 0; i < input.Length; i++) { char tmp = input[i]; if (tmp == '<') { inside = true; continue; } if (tmp == '>') { inside = false; continue; } if (!inside) { charArray[arrayIndex] = tmp; arrayIndex++; } } return new string(charArray, 0, arrayIndex); }
Metodun VB.NET sürümü
Public Function StripTags(ByVal input As String) As String Dim charArray As Char() = New Char(input.Length - 1) {} Dim arrayIndex As Integer = 0 Dim inside As Boolean = False For i As Integer = 0 To input.Length - 1 Dim tmp As Char = input(i) If tmp = "< "c Then inside = True Continue For End If If tmp = ">"c Then inside = False Continue For End If If Not inside Then charArray(arrayIndex) = tmp arrayIndex += 1 End If Next Return New String(charArray, 0, arrayIndex) End Function
“.NET için HTML etiketleri temizleme metodu” için bir yorum
Yorumlar kapalı.