这会抛出一个ArgumentException异常:
可能是重复问题:
为什么XML中的"控制"字符是非法的?
在XML文件中保存转义字符0x1b
可能是重复问题:
为什么XML中的"控制"字符是非法的?
在XML文件中保存转义字符0x1b
var c = '\x1A';
var xml = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement("test", new XCData(c.ToString()))
);
var foo = xml.ToString(); // ArgumentException
为什么.NET会抛出这个异常?我已经使用CDATA将非法字符包裹起来了,所以我认为非法字符应该是由系统处理的。对于其他一些字符(例如0x1B、0x1C、0x1E、0x1E和0x1F),情况也是如此。
你如何解决这个问题?