XmlDocument.LoadXml() throws an exception of type ComException
.net, c#, windows-runtime, xml
Solution
The XML you provided is not valid, at least that's what Firefox says:
Erreur d'analyse XML : mal formé Emplacement : http://www.onlinetvrecorder.com/?aktion=epg_export&format=xml&btn_ok=OK&>stations=3SAT,ANIXE,ARD&from=30.11.2011&to=30.11.2011 Numéro de ligne 218, Colonne 193 :
(Sorry for the french)
Looking a bit closer, it looks like the parser breaks on the word "Plötzlich", on the character "ö".
You should use CDATA to prevent this:
<![CDATA[Your text here can contain special chars]]>
Problem
I'm trying to parse the xml document returned from this link but I get an exception of type `ComException` with the following message: `Error HRESULT E_FAIL has been returned from a call to a COM component.` Here's the code: ``` 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... } ``` Could you please help me why I get this message and how can I fix this? Thanks. EDIT: I'm reading the source of the XML using this function (maybe I'm wrong here and I should do something to get the string in UTF-8, because I don't see the German characters in the string in debug mode (watch window): ``` 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; } } ```