因刚学习C#,练习用xml文件存储数据遇到难题,特来向高手求助将xml文件读取到Dictionary,xml样式如下:
<进货> <进货日期 ID="0001" 日期="20160828"> <商品 A="aa" B="bb" C="cc" D="dd" E="ee" F="ff" G="gg"/> </进货日期> <进货日期 ID="0002" 日期="20160829"> <商品 A="aa" B="bb" C="cc" D="dd" E="ee" F="ff" G="gg"/> </进货日期> </进货>
用Lambda表达式读取到Dictionary后的效果如下代码段的Dic集合:
var Dic = new Dictionary<KeyValuePair<int, int>, string>(); Dic.Add(new KeyValuePair<int, int>(0, 0), "aa"); Dic.Add(new KeyValuePair<int, int>(0, 1), "bb"); Dic.Add(new KeyValuePair<int, int>(0, 2), "cc"); Dic.Add(new KeyValuePair<int, int>(1, 0), "aa"); Dic.Add(new KeyValuePair<int, int>(1, 1), "bb"); Dic.Add(new KeyValuePair<int, int>(1, 2), "cc");
从数据库读取成功,可是读xml搞了好久就是没成功,望高手指点。
求园子里的高手帮忙解决
上代码或者截图,看问题出在哪里
这谁知道你是怎么读的啊。。。
根据你提供的xml字符串写的代码Demo,可以正常读取,供参考:
/* < 进货 > < 进货日期 ID = "0001" 日期 = "20160828" > < 商品 A = "aa" B = "bb" C = "cc" D = "dd" E = "ee" F = "ff" G = "gg" /> </ 进货日期 > < 进货日期 ID = "0002" 日期 = "20160829" > < 商品 A = "aa" B = "bb" C = "cc" D = "dd" E = "ee" F = "ff" G = "gg" /> </ 进货日期 > </ 进货 > */ string strXml = textBox1.Text.Trim(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(strXml); //加载xml字符串 Dictionary<KeyValuePair<string, string>, string> dic = new Dictionary<KeyValuePair<string, string>, string>(); //得到根节点 XmlNodeList xnList = xmlDoc.SelectNodes("进货"); foreach (XmlNode item in xnList) //循坏节点 { XmlNodeList cndList = item.ChildNodes; foreach (XmlNode item1 in cndList) { string id = item1.Attributes.GetNamedItem("ID").Value; string date = item1.Attributes.GetNamedItem("日期").Value; string a = item1.FirstChild.Attributes.GetNamedItem("A").Value; //获取商品子节点属性A的值 dic.Add(new KeyValuePair<string, string>(id, date), a); //将指定的键和值添加到字典中 } }