.net – XmlSerializer和嵌入式WhiteSpace
发布时间:2020-12-16 23:12:52 所属栏目:百科 来源:网络整理
导读:我有以下包含空格Field1Value的xml.当我反序列化该xml时,我失去了单个空格字符. Request.Field2的值为“”.这是xml序列化程序中的错误吗? 有人可以推荐一个解决方案/解决方法来保留这个空间吗? ... var encoding = new System.Text.UTF8Encoding(); var _x
我有以下包含空格Field1Value的xml.当我反序列化该xml时,我失去了单个空格字符. Request.Field2的值为“”.这是xml序列化程序中的错误吗?
有人可以推荐一个解决方案/解决方法来保留这个空间吗? ... var encoding = new System.Text.UTF8Encoding(); var _xmlData = "<Request><Field1>Field1Value</Field1><Field2> </Field2></Request>"; var _xmlDataAsByteArray = new byte[_xmlData.Length]; _xmlDataAsByteArray = encoding.GetBytes(_xmlData); var _memoryStream = new MemoryStream(_xmlDataAsByteArray); var _XmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(Request)); Request _request = _XmlSerializer.Deserialize(_memoryStream) as Request; ... public class Request { public string Field1; public string Field2; } 解决方法
不,这不是一个错误,而是预期的行为.除非您选择保留空间,否则XML是处理器(即读取和写入XML的应用程序)应该规范化空白.请参阅XML 1.1规范
here的2.1节.
要保留空白,必须包含xml:space =“preserve”属性.因此XML应如下所示: <Request> <Field1>Field1Value</Field1> <!-- spaces inside Field2 will be preserved --> <Field2 xml:space="preserve"> </Field2> </Request> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |