清理XML属性值

时间:2010-07-08 23:28:16

标签: c# .net xml serialization xattribute

如何轻松清理传递给XAttribute的Value属性的值。

2 个答案:

答案 0 :(得分:1)

这是一种清除麻烦的扩展方法。 XML中不允许使用/ 0。我不确定其他字符是否也被禁止,但我不相信。可能最好从' '开始。

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 :(得分:1)

你可以尝试:

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

这将转义作为XML属性值无效的字符。