关于C#读取XML有关问题
关于C#读取XML问题.
------解决方案--------------------
xxxx 已经是ProgramName 节点本身了,xxxx["ProgramName"]就是不存在的了
xxxx["ProgramName"]表示的是xxxx节点的子节点ProgramName,而你不存在子节点了
------解决方案--------------------
xxxx已经是ProgramName节点了,xxxx["ProgramName"]当然就出错了。
不要最里面的foreach,用xxx["ProgramName"]还差不多,前提是只有一个ProgramName节点。
- C# code
private void InitList() { XmlDocument xml = new XmlDocument(); xml.Load("../../XMLFile1.xml"); XmlNode x = xml.DocumentElement; foreach(XmlNode xx in x.ChildNodes) { tv t = new tv(); t.TvName = xx["tvName"].InnerText; t.TvType = xx["tvType"].InnerText; foreach(XmlNode xxx in xx.ChildNodes) { if (xxx.Name == "programs") { foreach (XmlNode xxxx in xxx.ChildNodes) { String s = xxxx.InnerText; //此处要是使用索引器就会报错 如 s = xxxx["ProgramName"].InnerText; //未将对象引用到实例 ...很费解. t.ProgramName.Add(s); } } } list.Add(t);//存储tv实体类的泛型集合 } }
- XML code
<?xml version="1.0" encoding="utf-8" ?> <tv> <tvProgram> <tvType>黑白</tvType> <tvName>北京电视台</tvName> <programs> <ProgramName>认错</ProgramName> </programs> </tvProgram> <tvProgram> <tvType>RGB</tvType> <tvName>南京电视台</tvName> <programs> <ProgramName>认错</ProgramName> </programs> </tvProgram> <tvProgram> <tvType>彩色</tvType> <tvName>东京电视台</tvName> <programs> <ProgramName>认错</ProgramName> </programs> </tvProgram> </tv>
------解决方案--------------------
xxxx 已经是ProgramName 节点本身了,xxxx["ProgramName"]就是不存在的了
xxxx["ProgramName"]表示的是xxxx节点的子节点ProgramName,而你不存在子节点了
------解决方案--------------------
xxxx已经是ProgramName节点了,xxxx["ProgramName"]当然就出错了。
不要最里面的foreach,用xxx["ProgramName"]还差不多,前提是只有一个ProgramName节点。