В C # у меня есть XmlTextReader, созданный непосредственно из ответа HTTP (я не контролирую содержимое XML ответа).
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
XmlTextReader reader = new XmlTextReader(response.GetResponseStream());
Это работает, но иногда один из узлов элемента XMLбудет содержать символ Unicode (например, «é»), который отключает читателя.Я пытался использовать StreamReader с объявленной кодировкой, но теперь XmlTextReader выходит из самой первой строки: «Недопустимые данные. Строка 1, позиция 1»:
StreamReader sReader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Unicode);
XmlTextReader reader = new XmlTextReader(sReader);
Есть ли способ исправитьэтот?В качестве альтернативы, есть ли способ предотвратить синтаксический анализ XmlTextReader элемента (я знаю его имя) с потенциально оскорбительным символом?Мне плевать на этот конкретный элемент, я просто не хочу, чтобы он отключил читателя.
РЕДАКТИРОВАТЬ: Быстрое исправление: прочитать ответ в StringBuilder ("sb"):
sb.Replace("é", "e");
StringReader strReader = new StringReader(sb.ToString());
XmlTextReader reader = new XmlTextReader(strReader);