c# xml序列化和反序列化。也就是xml的解析和反解析。

2021-08-13 10:58

阅读:564

标签:manage   enc   大致   blog   序列   public   linq   manager   头部   用习惯了newTownSoft.json 的json反序列化。碰到xml是真的不习惯。 每次json反序列化都是直接把json丢到bejson网站生成一个实体类,稍微修改修改一点点变量名。然后直接newTownSoft反序列化,一下就得到一个实体类了。今天调某个接口,碰到xml。 记录如下。 xml setItemsPics 2017-09-07 15:51:04        0     操作成功      1125507057     0     操作成功    实体类如下:先引用 using System.Xml.Serialization;   using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Serialization; namespace DDTopManager.Response { [XmlRoot("response")] public class RSPItemPicSet { //操作返回xml示例,按这个xml格式定义可序列化的实体类 // public string str = @" // setItemsPics // 2017-09-07 15:51:04 // // // 1125550957 // 0 // 操作成功 // // // 1125507057 // 0 // 操作成功 // // //"; [XmlElement("functionID")] public string functionID { get; set; } [XmlElement("time")] public string time { get; set; } [XmlArray("ItemsIDList"), XmlArrayItem("itemIDInfo")] public List ItemsIDList { get; set; } [XmlRoot("itemIDInfo")] public class itemIDInfo { [XmlElement("itemID")] public string itemID { get; set; } [XmlElement("operCode")] public string operCode { get; set; } [XmlElement("operation")] public string operation { get; set; } } } }   引用(这是从str这个xml中反序列化到实体类)大致如下: XmlSerializer se = new XmlSerializer(typeof(RSPOrdersListGet)); byte[] arry = Encoding.UTF8.GetBytes(str); System.IO.Stream me = new System.IO.MemoryStream(arry); RSPOrdersListGet rsp = (RSPOrdersListGet)se.Deserialize(me);   序列化如下: RSPOrdersListGet RSPLG = new RSPOrdersListGet(); RSPLG.functionID = "setItemsPics"; List itemidinfos = new List(); itemIDInfo idi = new itemIDInfo(); idi.operation = "000"; idi.operCode = "0011"; idi.itemId = "aaa"; itemidinfos.Add(idi); itemIDInfo idi1 = new itemIDInfo(); idi1.operation = "000"; idi1.operCode = "0011"; idi1.itemId = "bbb"; itemidinfos.Add(idi1); RSPLG.ItemsIDList = itemidinfos; XmlSerializer rSPOrdersListGet = new XmlSerializer(typeof(RSPOrdersListGet)); rSPOrdersListGet.Serialize(Console.Out, RSPLG);    记录,以免忘记。 有一点和newTownSoft.json序列化和反序列化不同的是,比如数字List MyData 这个MyData 和json要对的上, 这里的直接用 头部的约束来定义即可c# xml序列化和反序列化。也就是xml的解析和反解析。标签:manage   enc   大致   blog   序列   public   linq   manager   头部   原文地址:http://www.cnblogs.com/Jerseyblog/p/7495364.html


评论


亲,登录后才可以留言!