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

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

时间: 2024-10-01 14:53:15

从XML中读取数据到内存的实例的相关文章

ASP.net中后台从xml中读取数据

问题描述 ASP.net中后台从xml中读取数据 ASP.net中后台从xml中读取数据,数据通过前台显示出来 解决方案 http://blog.csdn.net/qinghecool/article/details/3549764 解决方案二: http://guangquanzhu.blog.163.com/blog/static/112084455201331034415744/ 解决方案三: 写个httpHandler程序,返回xml,然后页面通过ajax调用,解析xml数据.

xml-用JAVA来读取这个XML中的数据

问题描述 用JAVA来读取这个XML中的数据 <?xml version=""1.0"" encoding=""UTF-8""?><Animation image=""X:workgame1FileImageAnim480_8001.png"" version=""4""> <Modules> <Modul

ffmpeg 从内存中读取数据(或将数据输出到内存)

更新记录(2014.7.24): 1.为了使本文更通俗易懂,更新了部分内容,将例子改为从内存中打开. 2.增加了将数据输出到内存的方法.   从内存中读取数据 ffmpeg一般情况下支持打开一个本地文件,例如"C:\test.avi" 或者是一个流媒体协议的URL,例如"rtmp://222.31.64.208/vod/test.flv" 其打开文件的函数是avformat_open_input(),直接将文件路径或者流媒体URL的字符串传递给该函数就可以了. 但其

buffer cache实验9:从buffer caceh中读取数据块解析-从逻辑读到物理读

先来张大图: 所用SQL语句: BYS@ ocm1>select dbms_rowid.rowid_relative_fno(rowid) file#,dbms_rowid.rowid_block_number(rowid) block#,deptno from bys.test;     FILE#     BLOCK#     DEPTNO ---------- ---------- ----------         4        391         10 就以上图为例,文字描述

c++的问题-C++中的从文件中读取数据并用链表创建的问题,请帮我看一下我的代码在哪里出现了问题

问题描述 C++中的从文件中读取数据并用链表创建的问题,请帮我看一下我的代码在哪里出现了问题 Phone* creat() { ifstream file("Phone.txt"); if( !file ) { for( int i = 0 ; i < 7; i++ ) cout< cout cout system("pause"); system("cls"); } next=NULL; Phone *pNew,*head,*q;

代码- 做js 树状图从文本中读取数据

问题描述 做js 树状图从文本中读取数据 求高手发个参考代码, 在线等,急!!! 解决方案 手里没有,你看下解析xml的方式.无非就是循环根节点,根据根节点循环子节点. 要学会百度

如何实现xml中的数据合并

问题描述 如何实现xml中的数据合并 如图片所示: 在同一个pdbid的情况下(如:pdbid="1A1R"), 因为第3行的 ID=AC ,和第11行的 ID=CA 反序, 那么如何将 反序的ID对中的proBnd(第5行)和rnaBnd(第15行)合并, 同时rnaBnd(第7行)和proBnd(第13行)合并. 合并方式为若同"-"的则为"-" . 若同"+"或者一个"-"一个"+"

《数据科学:R语言实现》——2.6 从数据库中读取数据

2.6 从数据库中读取数据 由于R会把数据读入内存中,因此这对于处理和分析小型数据集很合适.然而,由于企业每天积累的数据量要比个人的多得多,数据库文档在存储和分析大型数据时就变得更加常用.为了使用R访问数据库,我们可以使用RJDBC.RODBC或者RMySQL作为通信桥梁.在这一部分中,我们会介绍如何使用RJDBC连接存在数据库中的数据. 准备工作 在这一部分中,我们需要首先准备MySQL环境.如果你的机器(Windows)上有一个环境,你可以从MySQL通知器中检查服务器状态.如果本地服务器正

试图用java从excel文件中读取数据时出现的问题

问题描述 试图用java从excel文件中读取数据时出现的问题 org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: OPC Compliance error [M4.1]: there is more than one core properties relationship in the package ! at org.apache.poi.util.Packa