2009-11-16 5 views
2

Le code suivant se casse lorsque le code XML contient des données telles que "Lord & Hogan". Aucune suggestion? Merci, KenDésérialiser XML avec esperluette à l'aide de XmlSerializer()

private T GetResponse<T>(String apiObject, String query) 
    { 
     //Deserialize XML into the type specified. 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(BuildRequestUri(apiObject, query)); 
     using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse()) 
     { 
      try 
      { 
       XmlSerializer ser = new XmlSerializer(typeof(T)); 
       return (T)ser.Deserialize(resp.GetResponseStream()); 
      } 
      catch (Exception e) 
      { 
       error = e.InnerException.ToString(); 
       return default(T); 
      } 
     } 
    } 
+1

Pouvez-vous poster l'exception? –

+0

System.Xml.XmlException: une erreur s'est produite lors de l'analyse de EntityName. Ligne 12, position 30. Je dois mentionner que j'ai un contrôle limité sur le XML source (les utilisateurs peuvent ajouter des esperluettes sans validation). Dois-je essayer de travailler avec la réponse avant d'essayer de désérialiser? Merci, Ken. – Kenmeister

Répondre

3

vous devriez données XML comme encodent "Seigneur & Hogan". Il doit être codé comme ceci:

"Lord &amp; Hogan"

3

& en XML devrait être remplacé par &amp; sinon il est caractère non valide.

Questions connexes