Я работаю над небольшим проектом, который получает 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?
}