2010-05-27 6 views
3

Je sais que cela a été demandé ailleurs, mais aucune des questions ou réponses n'a aidé.
-je ouvrir un fichier xml dans mon SL 4 app:SL4: L'élément racine est manquant

StreamResouceInfo sri = Application.GetResourceStream(new System.Uri("z.xml", UriKind.Relative)); 
if (null != sri) 
{ 
    XDocument xDoc = XDocument.Load(sri.Stream); 
} 

"élément racine est manquant" exception. Hmm, n'arrive pas à poster le xml ... Il est bien formé et valide, avec un seul nœud racine et toutes les étiquettes fermées. Merci pour tout conseils ...

Essayons w/o les crochets:

xml version="1.0" encoding="utf-8" 
Root 
    Collection name="Fonts" 
     Value Lucida /Value 
     Value Arial /Value 
    /Collection 
/Root 

Répondre

1

Je viens d'avoir cette question. J'ai fini par mettre tout d'abord le flux reçu dans un XmlReader et ensuite dans le XDocument.Load.

Votre code serait

StreamResouceInfo sri = Application.GetResourceStream(new System.Uri("z.xml", UriKind.Relative)); 
if (null != sri) 
{ 
    XmlReader rdr = new XmlReader.Create(sri.Stream); 
    XDocument xDoc = XDocument.Load(rdr); 
} 

Dans mon cas, j'utilisais l'appel WebClient.DownloadStringAsync donc il était un peu différent

void getCacheData_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    if (e.Error == null) 
    { 
     StringReader stream = new StringReader(e.Result); 
     XmlReader reader = XmlReader.Create(stream); 
     XDocument doc = new XDocument.Load(reader); 
    } 
} 
Questions connexes