可能重复:
Why are “control” characters illegal in XML?
Saving an escape character 0x1b in an XML file
抛出ArgumentException:
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)也是如此。
你如何解决这个问题?
答案 0 :(得分:0)
我不认为SecurityElement.Escape会起作用,因为\ x1A是一个控制代码 - 没有有效的xml实体可供替换。
有关详细信息,请参阅此list of valid XML characters。
答案 1 :(得分:-1)