Я работаю над небольшим проектом, который получает данные XML в виде строки из давно работающего приложения. Я пытаюсь загрузить эти строковые данные в XDocument
(System.Xml.Linq.XDocument
), а затем оттуда сделать XML Magic и создать файл xlsx для отчета о данных.
Иногда я получаю данные с недопустимыми символами XML, и при попытке разобрать строку в 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?
}