当前位置: 首页 > 编程语言 > C#

如何在C#中将XMLDocument反序列化为一个对象?分享

时间:2023-04-10 15:23:53 C#

C#中如何将XMLDocument反序列化为对象?我有一个.Netwebserivce,它接受字符串格式的XML。发送到webserivce的XMLString可以表示系统中的任何Object。我需要检查第一个节点并找出反序列化XML字符串的对象。为此,我必须将XML加载到XMLDocument中(不想使用RegEx或字符串比较)。我想知道是否有一种方法可以反序列化XMLDocument/XMLNode而不是字符串来节省一些性能?序列化XMLNode而不是字符串是否有任何性能优势?加载XMLDocument的方法publicvoidLoadFromString(Strings){m_XmlDoc=newXmlDocument();m_XmlDoc.LoadXml(s);谢谢如果你有一个XmlDocument,你可以使用XmlNodeReader作为XmlReader传递给XmlSerializer,但我想知道否则一种方法会更好;使用XmlReader获取最外层的元素名称,并将其提供给XmlSerializer...[XmlRoot("foo")]publicclassFoo{[XmlAttribute("id")]publicintId{get;放;}}staticclassProgram{staticvoidMain(){stringxml="";对象对象;使用(XmlReaderreader=XmlReader.Create(newStringReader(xml))){reader.移动到内容();switch(reader.Name){case"foo":obj=newXmlSerializer(typeof(Foo)).Deserialize(reader);休息;默认值:thrownewNotSupportedException("Unexpected:"+reader.Name);}}}}不要忘记LINQtoXML的有力竞争者!以上就是C#学习教程:C#中如何将XMLDocument反序列化为对象?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——XElementroot=XElement.Load(myfile);varfoos=root.Descendants("富").Where(e=>e.Attribute("bar")!=null);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: