Как убрать пустую строку Xml C#

211
23 марта 2018, 10:08

Мне нужно вытянуть RSS данные для работы с Interfax. Но проблема это XML. Когда пытаюсь вытянуть, в данном RSS первая строка пустая. И XDocument xdoc = XDocument.Load(url);Не хочет считывать данные и выкидывает ошибку (Что типа начало файла начинается с 2 строки). Может кто встречался с такой ситуацией и решил её подскажите пожалуйста. Нужно как то убрать эту пустую строку что бы загрузило.

Answer 1

Все верно, в этом 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);
Answer 2
        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");

READ ALSO
Не выделяется треугольник в меше в Unity

Не выделяется треугольник в меше в Unity

Код с официального сайта Unity, с минимальными изменениями под себяПочему треугольники меша не выделяются, как должно?

225
Развертывание окна при запуске… (Дизайн WPF)

Развертывание окна при запуске… (Дизайн WPF)

Доброе время суток, уважаемые пользователи, прошу помочь! Как на C# WPF на EventTrigger сделать что бы, не кнопка так разворачивалась, а окно сама? Я хочу...

233
Как сделать поиск в Entity Framework

Как сделать поиск в Entity Framework

Привет!Мне нужно сделать выборку в таблице Recipe данных которые были введены в текстбокс inputProduct и с тех рецептов которые были выбраны взять...

246
Visual studio 2017

Visual studio 2017

Так как не имею опыт работы в VS, при установке задался вопросом: Какие основные компоненты требуется для разработки на языке C#? Буду благодарен,...

158