public void xmlparser(String path) { XmlDocument spldoc = new XmlDocument(); spldoc.PreserveWhitespace = false; spldoc.Load(path); XmlNode root = spldoc.DocumentElement; XmlNodeList allcategory = root.SelectNodes("CATEGORY"); List <RuleItem> TreeViewList = new List <RuleItem>(); foreach (XmlNode category in allcategory) { //Console.WriteLine(category.Attributes["name"].Value); RuleItem RuleRoot = new RuleItem(category.Attributes["name"].Value); foreach (XmlNode subcategory in category.ChildNodes) { //Console.WriteLine(subcategory.Attributes["name"].Value); RuleItem asubcategory = new RuleItem(subcategory.Attributes["name"].Value); foreach (XmlNode item in subcategory.ChildNodes) { RuleItem arule = new RuleItem(item.Attributes["name"].Value); arule.Text = item.Attributes["text"].Value; asubcategory.Children.Add(arule); //Console.WriteLine(item.Attributes["name"].Value); } RuleRoot.Children.Add(asubcategory); } RuleRoot.Initialize(); TreeViewList.Add(RuleRoot); } selectList.ItemsSource = TreeViewList; }
//返回List<RuleItem>,用作显示在检查工具中 public List <RuleItem> parseDelivery() { Initialize(); int firstClass = 0; int secondClass = 0; int thirdClass = 0; RuleItem curFirstRule = null; RuleItem curSecondRule = null; List <RuleItem> allRules = new List <RuleItem>(); do { //对于每一行 while (excelInfo.Read()) { //跳过第一列有值的行 if (excelInfo.GetValue(0) != null) { continue; } //如果第二列有值 if (excelInfo.GetValue(1) != null) { firstClass++; secondClass = 0; string name = firstClass.ToString() + ':' + excelInfo.GetValue(1).ToString(); //Console.WriteLine(name); curFirstRule = new RuleItem(name); curFirstRule.Text = excelInfo.GetValue(1).ToString(); allRules.Add(curFirstRule); } //如果第三列有值 if (excelInfo.GetValue(2) != null) { secondClass++; thirdClass = 0; string name = firstClass.ToString() + '.' + secondClass.ToString() + ':' + excelInfo.GetValue(2).ToString(); curSecondRule = new RuleItem(name); curSecondRule.Text = excelInfo.GetValue(2).ToString(); curFirstRule.Children.Add(curSecondRule); //Console.WriteLine(name); } //如果第四列有值 if (excelInfo.GetValue(3) != null) { thirdClass++; string name = firstClass.ToString() + '.' + secondClass.ToString() + '.' + thirdClass.ToString() + ':' + excelInfo.GetValue(3).ToString(); var thirdRule = new RuleItem(name); curSecondRule.Children.Add(thirdRule); //Console.WriteLine(name); } } } while (excelInfo.NextResult()); foreach (var rule in allRules) { rule.Initialize(); } return(allRules); }