Maison > Article > développement back-end > Exemple de lecture de données XML en mémoire
Instance de lecture de données de XML vers la mémoire
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; }
Ce qui précède est le contenu de l'exemple de lecture de données de XML vers la mémoire. Pour plus de contenu connexe, veuillez faire attention. sur le site Web PHP chinois (www.php.cn) !