首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于C#读取XML有关问题

2012-08-30 
关于C#读取XML问题.C# codeprivate void InitList(){XmlDocument xml new XmlDocument()xml.Load(../.

关于C#读取XML问题.

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节点。

热点排行