使用动态反序列化XML到对象

是否可以将未知的XML反序列化为如下所示的对象?


 var xml = @"<Students><Student><Name>Arul</Name><Mark>90</Mark></Student></Students>";


 var serializer = new XmlSerializer(typeof(DynamicObject));


 dynamic students = serializer.Deserialize(new XmlTextReader(new StringReader(xml)));


汪汪一只猫
浏览 319回答 3
3回答

12345678_0001

我发现了一个错误-具有属性代码的空元素返回的是空字符串,而不是像这里这样的元素<Student Name="Ivan" />。我将这条不断变化的39&nbsp;DynamicXml类线路&nbsp;固定为此固定result = node.HasElements || node.HasAttributes ? (object)new DynamicXml(node) : node.Value;

森林海

如果仅返回单个元素而失败则返回多个元素,而您在foreach中使用它,则此方法很好用!我建议更改“结果=新的DynamicXml(node);”&nbsp;到“结果=新List <DynamicXml>(){新DynamicXml(node)};”&nbsp;这将返回带有单个元素的列表。
打开App,查看更多内容
随时随地看视频慕课网APP