2010-07-08 2 views
1

Как я могу легко дезинфицировать значения, которые я передаю в свойство Value XAttribute.Sanitize Значения атрибута XML

+1

Определите «дезинфекцию», и вы можете получить полезный ответ. – spender

+0

Ну в основном его бросает ошибка на сохранение, что он не может принять определенный символ, '/ 0'. Я предполагаю, что есть другие символы, которые он не может принять, поэтому мне было интересно, есть ли способ удалить их все. – Dested

+1

может добавить эту информацию в реальный вопрос ... –

ответ

1

Это способ расширения, чтобы убрать вашу проблему./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()); 
    } 
} 
1

Вы можете попробовать:

string value = "[email protected]#$%^&*()123%^&*([email protected]#\(*!&10987" 
value = System.Security.SecurityElement.Escape(value); 

Это избежит символы, которые являются недопустимыми в качестве значений атрибутов XML.

+0

Приятно, но не избавляется от \ 0. – spender

Смежные вопросы