Abhi1 Kanobi Ответов: 1

Ошибка при попытке чтения XML из URL-адреса в ASP.NET ядро 2.1


Я пытаюсь прочитать XML-файл с URL-адреса, и ниже приведен мой код в .net core

var url = "https://some.com/feeds/newfile.xml";
           var httpClient = new HttpClient();
           var result = httpClient.GetAsync(url).Result;
           var stream = result.Content.ReadAsStreamAsync().Result;

           var itemXml = XElement.Load(stream);



когда deubgger попадает в файл .load , он выдает ошибку "Ошибка в строке 22 в столбце 46: xmlParseEntityRef: no name"


Ниже приведен снимок в формате XML, где произошла ошибка, т. е. линия 22

<li>Win management’s support for your LOTO & machine guarding initiatives  </li>


Что я уже пробовал:

Я пытался отключить проверку ошибок или синтаксиса, но безуспешно

Richard Deeming

URL-адрес, который вы пытаетесь загрузить, не возвращает допустимый XML. То & символ должен быть закодирован как &amp;.

Abhi1 Kanobi

Спасибо вам за ваш ответ.

Есть ли способ закодировать его до того, как он загрузится?

1 Ответов

Рейтинг:
8

Kornfeld Eliyahu Peter

Проблема заключается в том, что & - это специальный символ в XML, и его следует рассматривать как таковой...
Простыми словами - XML недействителен...
Список ссылок на сущности символов XML и HTML - Википедия[^]


Abhi1 Kanobi

Спасибо вам за ваш ответ.

Есть ли способ закодировать его до того, как он загрузится?

Kornfeld Eliyahu Peter

На самом деле это ответственность сайта, с которого вы скачиваете...
Однако если она не может быть решена, вы можете попробовать сначала загрузить содержимое в виде текста, а затем закодировать его и загрузить в XML...