Очистить значения атрибутов XML
Как я могу легко санировать значения, которые я передаю в свойство Value атрибута XAttribute.
2 ответа
Вот метод расширения, чтобы убрать ваши проблемы. /0 не допускается в XML. Я не уверен, запрещены ли другие символы, но я не верю. Наверное, лучше всего начать с ' '
,
void Main()
{
Console.WriteLine("123\0394".XmlSanitize());
}
public static class XmlHelpers
{
public static string XmlSanitize(this string badString)
{
return new String(badString.Where(c => c >=' ').ToArray());
}
}
Вы можете попробовать:
string value = "!@#$%^&*()123%^&*(!@#\(*!&10987"
value = System.Security.SecurityElement.Escape(value);
Это исключит символы, которые являются недопустимыми в качестве значений атрибутов XML.