WEB开发网
开发学院WEB开发Xml 从XML中读取数据到内存的实例 阅读

从XML中读取数据到内存的实例

 2006-04-19 11:25:44 来源:WEB开发网   
核心提示:public clsSimuResultByOneGoods GetOneGoodsSimulationxml(string PathAndFileName) { clsSimuResultByOneGoods OneGoods = new clsSimuResultByOneGoods();//自己定义的一个类

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

Tags:XML 读取 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接