以下代码内容:如何从XML中读取数据到内存
代码开始:
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; }
(责任编辑:admin) |