HttpUtility.HtmlDecode() кроме некоторых определенных строк в vb.net
На самом деле, я хотел HTMLDecode текста, используя функцию HttpUtility.HtmlDecode(), и он корректно работает со всем текстом, но я хочу декодировать текст, за исключением некоторой конкретной строки. Как я могу это сделать?
В частности, я не хочу декодировать <и>
Допустим, моя строка - < & >
HttpUtility.HtmlDecode(text)
возвращается - < & >
Требуемый вывод - < & >
1 ответ
Вы можете заменить строки, которые вы не хотите менять, на то, что декодер не распознает, а затем вернуть их к исходному значению. Вы должны убедиться, что строка, которую вы заменяете, не является тем, что обычно можно найти в строке.
Public Function Convert1(ByVal str As String) As String
str = str.Replace("<", "{lt}")
str = str.Replace(">", "{gt}")
str = HttpUtility.HtmlDecode(str)
str = str.Replace("{lt}", "<")
str = str.Replace("{gt}", ">")
Return str
End Function
Другой вариант - разделить строку и декодировать только ту часть, которую вы хотите.
Public Function Convert2(ByVal str As String) As String
Dim parts() As String = Regex.Split(str, "(<|>)")
For i As Integer = 0 To parts.Length - 1
Console.WriteLine(parts(i))
If parts(i) <> "<" And parts(i) <> ">" Then
parts(i) = HttpUtility.HtmlDecode(parts(i))
End If
Next
Return String.Join("", parts)
End Function
Это всего лишь пример, некоторые проверки и рефакторинг должны быть сделаны.