Мне нужно вытянуть RSS данные для работы с Interfax.
Но проблема это XML. Когда пытаюсь вытянуть, в данном RSS первая строка пустая. И XDocument xdoc = XDocument.Load(url);Не хочет считывать данные и выкидывает ошибку (Что типа начало файла начинается с 2 строки). Может кто встречался с такой ситуацией и решил её подскажите пожалуйста. Нужно как то убрать эту пустую строку что бы загрузило.
Все верно, в этом XML первый символ \n что недопустимо и вызывает исключение System.Xml.XmlException:
Unexpected XML declaration. The XML declaration must be the first node in the document, and no whitespace characters are allowed to appear before it. Line 2, position 3.
Просто удалите первый символ из строки с XML:
const string url = "https://www.interfax.by/news/feed";
string xmlStr;
using (var webClient = new WebClient())
{
xmlStr = webClient.DownloadString(url);
xmlStr = xmlStr.Remove(0, 1);
}
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlStr);
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
string xmlText;
using(StreamReader reader = new StreamReader(stream)) {
xmlText = reader.ReadToEnd();
}
using(StreamWriter writer = new StreamWriter(Directory.GetCurrentDirectory() + "/Temp/temp")) {
writer.Write(xmlText.Remove(0, 1));
}
Вот так я сделал. Используя резервный фаил и не потерял кодировки. И при вытяжке просто загрузил его в xdoc = XDocument.Load(Directory.GetCurrentDirectory() + "/Temp/temp");
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости