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