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ı.