我正在开发一个小项目,它从一个长期运行的应用程序接收字符串形式的XML数据.我正在尝试将此字符串数据加载到XDocument(System.Xml.Linq.XDocument)中,然后从那里执行一些XML Magic并为数据报告创建xlsx文件.
有时,我收到包含无效XML字符的数据,并且在尝试将字符串解析为a时XDocument,我收到此错误.
[System.Xml.XmlException]消息:'?',十六进制值0x1C,是无效字符.
由于我无法控制远程应用程序,因此您可以期待任何类型的角色.
我很清楚XML有一种方法可以将字符放在其中,例如类似的东西.
如果可能的话,我会非常喜欢保留所有数据.如果没有,那就不要了.
我已经考虑过以编程方式编辑响应字符串,然后返回并尝试重新解析如果抛出异常,但我尝试了一些方法,但它们似乎都没有成功.
谢谢你的想法.
代码就是这样的:
TextReader tr;
XDocument doc;
string response; //XML string received from server.
...
tr = new StringReader (response);
try
{
doc = XDocument.Load(tr);
}
catch (XmlException e)
{
//handle here?
}
Run Code Online (Sandbox Code Playgroud)