C#开发之XmlString与实体类对象的相互转换

来源:互联网 发布:pc机装mac 编辑:程序博客网 时间:2024/05/18 07:25

1.XmlString转化成实体类对象
XmlString转化成实体类对象即XML的解析并给实体类赋值。
比如,将XMl解析并生成Cost实体类:

public static object GetCosts(string xmlString) {            Model.COSTS myCosts = new COSTS();            //Xml解析            XmlDocument doc = new XmlDocument();            doc.LoadXml(xmlString);            XmlNodeList xxList = doc.GetElementsByTagName("Object"); //取得节点名为Object的集合            foreach(XmlNode xxNode in xxList)  //xxNode 是每一个<CL>...</CL>体            {                XmlNodeList childList = xxNode.ChildNodes; //取得CL下的子节点集合                foreach(XmlNode node in childList) {                    String temp = node.Name;                    switch(temp) {                        case "ID":    //编码                            myCosts.ID = node.InnerText;                            break;                        case "ITEM_CODE":       //材料编码                            myCosts.ITEM_CODE = node.InnerText;                            break;                    }                }            }            return myCosts;        }

附XMl样式如下:

<Objects><Object><ID>100</ID><ITEM_CODE>1</ITEM_CODE></Object></Objects>

2.实体类对象转化成XmlString

public static string ObjListToXml<T>(List<T> enitities)        {            StringBuilder sb = new StringBuilder();            PropertyInfo[] propinfos = null;            //sb.AppendLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");            sb.AppendLine("<Objects>");            foreach (T obj in enitities)            {                //初始化propertyinfo                if (propinfos == null)                {                    Type objtype = obj.GetType();                    propinfos = objtype.GetProperties();                }                sb.AppendLine("<Object>");                foreach (PropertyInfo propinfo in propinfos)                {                    sb.Append("<");                    sb.Append(propinfo.Name);                    sb.Append(">");                    sb.Append(propinfo.GetValue(obj, null));                    sb.Append("</");                    sb.Append(propinfo.Name);                    sb.AppendLine(">");                }                sb.AppendLine("</Object>");            }            sb.AppendLine("<Objects>");            return sb.ToString();        }




 

原创粉丝点击