Шестнадцатеричное значение 0x0B, является недопустимой проблемой символов в XML

88
6

enter image description hereЯ получаю исключение '', шестнадцатеричное значение 0x0B, является недопустимым символом. Строка 23, позиция 22.


Я уже пробовал решение из здесь, но он не работает для меня. Поскольку мой проект находится в версии 3,5, я не могу использовать метод XmlConvert.IsXmlChar MSDN


Как это сделать?

спросил(а) 2021-01-25T17:44:36+03:00 4 месяца, 3 недели назад
1
Решение
63

Вы можете заменить эти недопустимые символы, используя метод ниже.

public static string CleanInvalidXmlChars(this string StrInput)
{
//Returns same value if the value is empty.
if (string.IsNullOrWhiteSpace(StrInput))
{
return StrInput;
}
// From xml spec valid chars:
// #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
// any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.
string RegularExp = @"[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]";
return Regex.Replace(StrInput, RegularExp, String.Empty);
}

ответил(а) 2021-01-25T17:44:36+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема