如果在XML文本中出现“&”符号,则在将内存流反序列化为类时出现错误。
[XmlRoot(ElementName="DesEng")]
public class DesEng {
[XmlAttribute(AttributeName="unit")]
public string Unit { get; set; }
[XmlText]
public string Text{ get; set; }
}
var xmlSerializer = new XmlSerializer(typeof(T));
var temp = (T)xmlSerializer.Deserialize(ms); // error
出现错误的行。
<DesEng unit="per Sector">GSM/LTE Dual Mode license for Blade&AAU</DesEng>
使用XmlWriterSettings {CheckCharacters = false}结果未带来。我收到一个错误“ XML文档中存在错误(229,70)”。 如果我将&符号更改为另一个符号,则该类中的反序列化将正确通过。
答案 0 :(得分:1)
请尝试使用与号的转义符。您可以手动替换它,也可以在反序列化之前替换它。
View
为了将来参考,这些字符也需要转义:
&
查看此问题中发布的答案:https://stackoverflow.com/a/1091953/2255454
答案 1 :(得分:0)
如果要在XML中添加“&”作为字符。尝试使用与号的转义符。
那么您的xml应该是:
<DesEng unit="per Sector">GSM/LTE Dual Mode license for Blade&AAU</DesEng>