欢迎来到天天文库
浏览记录
ID:10774010
大小:81.00 KB
页数:8页
时间:2018-07-08
《对象和xml文件的转换》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、对象和XML文件的转换很多时候,我们开发程序都需要使用到对象的XML序列化和反序列化,对象的XML序列化和反序列化,既可以使用XML对象(XmlDocument)进行操作,也可以使用XmlSerializer进行操作,两个各有优点,就操作性而已,我倾向于使用后者来操作XML。本文介绍三种方式操作XML,普通的XDocument的API操作,方便的XmlSerializer对象序列化及反序列化操作,加密XML对象序列化操作。1、普通的XML对象操作,利用XML对象(XmlDocument)。一个典型的利用
2、XmlDocument对象操作XML的例子代码如下。1publicstaticvoidRunSnippet()2{3XmlDocumentxmldoc=newXmlDocument();4//加入XML的声明段落5XmlNodexmlnode=xmldoc.CreateNode(XmlNodeType.XmlDeclaration,"","");6xmldoc.AppendChild(xmlnode);7//加入一个根元素8XmlElementxmlelem=xmldoc.CreateElement("
3、","ROOT","");9XmlTextxmltext=xmldoc.CreateTextNode("RootText");10xmlelem.AppendChild(xmltext);11xmldoc.AppendChild(xmlelem);12//加入另外一个元素13XmlElementxmlelem2=xmldoc.CreateElement("SampleElement");14xmlelem2=xmldoc.CreateElement("","SampleElement","");15xm
4、ltext=xmldoc.CreateTextNode("Thetextofthesampleelement");16xmlelem2.AppendChild(xmltext);17xmldoc.ChildNodes.Item(1).AppendChild(xmlelem2);18//保存创建好的XML文档19try20{21xmldoc.Save("c:\data.xml");22}23catch(Exceptione)24{25//显示错误信息26Console.WriteLine(e.Messa
5、ge);27}28Console.ReadLine();29}得到的输出结果如下所示。12RootText3Thetextofthesampleelement42、使用XmlSerializer进行XML操作先提供两个对象的序列化和反序列化的封装函数,如下所示。1///2///对象序列化XML到文件中3///4///6、path">文件路径5///对象6///对象类型7privateboolXmlSerialize(stringpath,objectobj,Typetype)8{9XmlSerializerNamespacesns=newXmlSerializerNamespaces();10ns.Add("","");1112try13{14//如果文件目录不存在,那么创建目录15if(!File.E7、xists(path))16{17FileInfofi=newFileInfo(path);18if(!fi.Directory.Exists)19{20Directory.CreateDirectory(fi.Directory.FullName);21}22}2324using(Streamstream=newFileStream(path,FileMode.Create,FileAccess.Write,FileShare.None))25{26XmlSerializerformat=newXml8、Serializer(type);2728format.Serialize(stream,obj,ns);29stream.Close();30}3132returntrue;1}2catch(Exceptionex)3{4Console.WriteLine(ex.Message);5returnfalse;6}7}89///10///XML反序列化11///12///
6、path">文件路径5///对象6///对象类型7privateboolXmlSerialize(stringpath,objectobj,Typetype)8{9XmlSerializerNamespacesns=newXmlSerializerNamespaces();10ns.Add("","");1112try13{14//如果文件目录不存在,那么创建目录15if(!File.E
7、xists(path))16{17FileInfofi=newFileInfo(path);18if(!fi.Directory.Exists)19{20Directory.CreateDirectory(fi.Directory.FullName);21}22}2324using(Streamstream=newFileStream(path,FileMode.Create,FileAccess.Write,FileShare.None))25{26XmlSerializerformat=newXml
8、Serializer(type);2728format.Serialize(stream,obj,ns);29stream.Close();30}3132returntrue;1}2catch(Exceptionex)3{4Console.WriteLine(ex.Message);5returnfalse;6}7}89///10///XML反序列化11///12///
此文档下载收益归作者所有