修改属性值.报错:异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。怎么处理?我用的是VS2005
代码如下:
XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath("bocom.xml"));        XmlNodeList nodeList = xmlDoc.SelectSingleNode("campaigns").ChildNodes;//获取campaigns节点的所有子节点
        string pre = "MOCE1";
        string re="";
        foreach (XmlNode xn in nodeList)//遍历所有子节点
        {
            XmlElement xe= xn as XmlElement;
            if (xe.GetAttribute("name") == "aaTest")//此行出错
            {
               xe.SetAttribute("name", "updateaaTest");
                 re="更新成功";
            }
      }

解决方案 »

  1.   

    问题可能出在XmlElement xe= xn as XmlElement;这一行。
    as做转换的时候如果不能成功转换为目标类型,不会抛出异常,所以xe可能为null。
      

  2.   


    XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(Server.MapPath("bocom.xml"));        XmlNodeList nodeList = xmlDoc.SelectSingleNode("campaigns").ChildNodes;//获取campaigns节点的所有子节点
    if(nodeList !=null)
    {
            string pre = "MOCE1";
            string re="";
            foreach (XmlNode xn in nodeList)//遍历所有子节点
            {
                XmlElement xe= xn as XmlElement;
               if (xe.GetAttribute("name").value == "aaTest")//此行出错
                {
                   xe.SetAttribute("name", "updateaaTest");
                     re="更新成功";
                }
          }
    }
      

  3.   

    如果不那样写,写成这样也报错.
    XmlElement xe=(XmlElement)xn;