使用&符号使用XmlSerializer()反序列化XML

当XML具有“Lord&Hogan”等数据时,以下代码会中断。 有什么建议? 谢谢,肯

private T GetResponse(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); } } } 

从这里 :

XML标准不允许XML标记内的文字符号,并且任何XML解析器都无法解析此类文档。

StackOverflow上的其他类似问题:

  • 如何在XML中转义&符号
  • 为什么RSS不能处理&符号?
  • 用&符号解析XML
  • 使用&符号使用XmlSerializer()反序列化XML
  • 还有更多!

你应该对像“Lord&Hogan”这样的数据进行XML编码。 它应该像这样编码:

"Lord & Hogan"

& xml应替换为& 否则它是无效的字符。

这是可以用来替换所有不允许的字符的函数: https ://msdn.microsoft.com/en-us/library/system.security.securityelement.escape( v= vs.110).aspx