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();
}