打印本文 打印本文 关闭窗口 关闭窗口
从XML中读取数据到内存的实例
作者:武汉SEO闵涛  文章来源:敏韬网  点击数575  更新时间:2009/4/23 11:18:47  文章录入:mintao  责任编辑:mintao
     public clsSimuResultByOneGoods GetOneGoodsSimulationXML(string PathAndFileName)
   {
   clsSimuResultByOneGoods OneGoods = new clsSimuResultByOneGoods();//自己定义的一个类
   Hashtable AllLocationResult = new Hashtable();
   System.Xml.XmlTextReader r = new XmlTextReader(PathAndFileName);
   string LocationID = "";
   DataTable LocationTable = null;
   while(r.Read())
   {
   if(r.NodeType == XmlNodeType.Element)
   {
   switch(r.LocalName)
   {
   case "Result":
   OneGoods.GoodsCode = r.GetAttribute("GoodsCode");
   OneGoods.From = Convert.ToDateTime(r.GetAttribute("FromDate"));
   OneGoods.To = Convert.ToDateTime(r.GetAttribute("ToDate"));
   break;
   case "Location":
   LocationID = r.GetAttribute("ID");
   LocationTable = new DataTable();
   LocationTable.Columns.Add("Date",typeof(DateTime));
   LocationTable.Columns.Add("SafetyStock",typeof(decimal));
   LocationTable.Columns.Add("ForecastDemand",typeof(decimal));
   LocationTable.Columns.Add("FinalOutput",typeof(decimal));
   LocationTable.Columns.Add("FinalInput",typeof(decimal));
   LocationTable.Columns.Add("SimuStock",typeof(decimal));
   LocationTable.Columns.Add("SimuStockTime",typeof(decimal));
   LocationTable.Columns.Add("ImportWorkDay",typeof(bool));
   LocationTable.Columns.Add("ImportWorkDay",typeof(bool));
   break;
   case "Record":
   if(LocationTable != null)
   {
   DataRow dr = LocationTable.NewRow();
   dr["Date"] = Convert.ToDateTime(r.GetAttribute("Date"));
   if(r.GetAttribute("SafetyStock") != null && r.GetAttribute("SafetyStock") != "")
   dr["SafetyStock"] = Convert.ToDecimal(r.GetAttribute("SafetyStock"));
   if(r.GetAttribute("ForecastDemand") != null && r.GetAttribute("ForecastDemand") != "")
   dr["ForecastDemand"] = Convert.ToDecimal(r.GetAttribute("ForecastDemand"));
   if(r.GetAttribute("FinalInput") != null && r.GetAttribute("FinalInput") != "")
   dr["FinalInput"] = Convert.ToDecimal(r.GetAttribute("FinalInput"));
   if(r.GetAttribute("FinalOutput") != null && r.GetAttribute("FinalOutput") != "")
   dr["FinalOutput"] = Convert.ToDecimal(r.GetAttribute("FinalOutput"));
   if(r.GetAttribute("SimuStock") != null && r.GetAttribute("SimuStock") != "")
   dr["SimuStock"] = Convert.ToDecimal(r.GetAttribute("SimuStock"));
   if(r.GetAttribute("SimuStockTime") != null && r.GetAttribute("SimuStockTime") != "")
   dr["SimuStockTime"] = Convert.ToDecimal(r.GetAttribute("SimuStockTime"));
   if(r.GetAttribute("ImportWorkDay") != null && r.GetAttribute("ImportWorkDay") != "")
   dr["ImportWorkDay"] = Convert.ToBoolean(r.GetAttribute("ImportWorkDay"));
   if(r.GetAttribute("ExportWorkDay") != null && r.GetAttribute("ExportWorkDay") != "")
   dr["ExportWorkDay"] = Convert.ToBoolean(r.GetAttribute("ExportWorkDay"));
   LocationTable.Rows.Add(dr);
  
   }
   break;
   default:
   break;
   }
   }
   else if(r.NodeType == XmlNodeType.EndElement)
   {
   switch(r.LocalName)
   {
   case "Location":
   if(LocationTable != null)
   {
   LocationTable.AcceptChanges();
   AllLocationResult.Add(LocationID,LocationTable);
   LocationID = "";
   LocationTable = null;
   }
   break;
   default:
   break;
   }
   }
   }
   OneGoods.AllLocationResult = AllLocationResult;
   return OneGoods;
  
   }
  
  
  
    

打印本文 打印本文 关闭窗口 关闭窗口