Вопрос

Я пытаюсь проанализировать документ XML, возвращенный из эта ссылка Но я получаю исключение типа ComException С следующим сообщением:

Error HRESULT E_FAIL has been returned from a call to a COM component.

Вот код:

        try
        {
            //...
            string EPGXML = await DownloadAsync(url);

            var xmldoc = new XmlDocument();
            xmldoc.LoadXml(EPGXML); //this line throws the exception
            //...rest of the code
        }
        catch (Exception)
        {
            //I get here...
        }

Не могли бы вы помочь мне, почему я получу это сообщение и как я могу это исправить? Спасибо.

РЕДАКТИРОВАТЬ:

Я читаю источник XML, используя эту функцию (возможно, я здесь не ошибаюсь, и я должен что-то сделать, чтобы получить строку в UTF-8, потому что я не вижу немецких символов в строке в режиме отладки (Смотрите окно):

    private async static Task<string> DownloadPageAsync(string url)
    {
        try
        {
            HttpClientHandler handler = new HttpClientHandler();
            handler.UseDefaultCredentials = true;
            handler.AllowAutoRedirect = true;
            handler.UseCookies = true;
            HttpClient client = new HttpClient(handler);
            client.MaxResponseContentBufferSize = 10000000;
            HttpResponseMessage response = await client.GetAsync(url);
            response.EnsureSuccessStatusCode();

            string responseBody = response.Content.ReadAsString();
            return responseBody;
        }
        catch (Exception ex)
        {
            return "error" + ex.Message;
        }
    }
Это было полезно?

Решение

XML, который вы предоставили, недопустим, по крайней мере, это то, что говорит Firefox:

Erreur D'Analyze XML: MAL Formé. Размещение: http://www.onlinetvrecorder.com/?> Станции = 3SAT, ANIXE, ARD & от = 30.11.2011 & TO = 30.11.2011 Numéro de Ligne 218, Colonne 193:

(Извините за французы)

Глядя немного ближе, похоже, что анализатор разрывается на слове «Plötzlich», на персонаже «ö».

Вы должны использовать CDATA, чтобы предотвратить это:

<![CDATA[Your text here can contain special chars]]>

Другие советы

Не пытайтесь загружать XML -документ на HTML -странице. Использовать HTML Agility Pack который должен был сделать это.

РЕДАКТИРОВАТЬ: Если вы просто хотите источник страницы в качестве строки, это должно сделать свое дело.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://stackoverflow.com/posts/8331002");
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string data = string.Empty;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
    data = reader.ReadToEnd();

Console.WriteLine(data);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top