C# XML解析学习

  public class Sheet
    {
        public string SheetName { get; set; }
        public string Datatable { get; set; }
        public List<Column> ColumnList { get; set; }
    }

    public class Column
    {
        public int ExcelColumnId { get; set; }
        public string ExcelColumnName { get; set; }
        public string DBColumnName { get; set; }
    }

    public class AnalyzeXML
    {
        private string path = HttpContext.Current.Server.MapPath(@"..\UploadExcel\ExcelMappingDB.xml");

        public List<Column> getColumnListByXml(string filename, string sheetname)
        {
            List<Column> list = new List<Column>();
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(path);
            XmlNode root = xmlDoc.DocumentElement;
            foreach (XmlNode file in root.ChildNodes)
            {
                XmlElement fe = (XmlElement)file;
                if (filename.Contains(fe.GetAttribute("name")))
                {
                    foreach (XmlNode sheet in file.ChildNodes)
                    {
                        XmlElement se = (XmlElement)sheet;
                        if (se.GetAttribute("name") == sheetname)
                        {
                            foreach (XmlNode column in sheet.ChildNodes)
                            {
                                Column dic = new Column();
                                dic.ExcelColumnId = int.Parse(column.Attributes["columnid"].Value);
                                dic.DBColumnName = column.Attributes["dbcolumn"].Value;
                                dic.ExcelColumnName = column.Attributes["columnname"].Value;
                                list.Add(dic);
                            }
                        }
                    }
                }
            }
            return list;
        }

        public List<Sheet> getSheetListByXml(string filename)
        {
            List<Sheet> list = new List<Sheet>();
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(path);
            XmlNode root = xmlDoc.DocumentElement;
            foreach (XmlNode file in root.ChildNodes)
            {
                XmlElement fe = (XmlElement)file;
                if (filename.Contains(fe.GetAttribute("name")))
                {
                    foreach (XmlNode sheet in file.ChildNodes)
                    {
                        XmlElement se = (XmlElement)sheet;
                        Sheet s = new Sheet();
                        s.SheetName = se.GetAttribute("name");
                        s.Datatable = se.GetAttribute("datatable");
                        s.ColumnList = getColumnListByXml(filename, se.GetAttribute("name"));
                        list.Add(s);
                    }
                }
            }
            return list;
        }

        public List<string> getFileNameListByXml()
        {
            List<string> list = new List<string>();
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(path);
            XmlNode root = xmlDoc.DocumentElement;
            foreach (XmlNode file in root.ChildNodes)
            {
                XmlElement fe = (XmlElement)file;
                list.Add(fe.GetAttribute("name"));
            }
            return list;
        }

posted @ 2012-05-02 11:52  爱生活,爱Dota  阅读(336)  评论(0)    收藏  举报