我做的是一个简单的xml操作的实验 
xml格式如下:
<?xml version="1.0" encoding="utf-8" ?>
<Root>
  <Man>
    <Name>XiaoBei</Name>
    <Age>25</Age>
    <IsMale>False</IsMale>
  </Man>
</Root>操作程序:    class XmlHelper
    {
        public void writeXML()
        {
            XmlDocument myXmlDoc = new XmlDocument();
            myXmlDoc.Load("config.xml");
            XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Man").ChildNodes;  //出现异常
            foreach (XmlNode xnf in nodeList)
            {
                xnf.Attributes["value"].Value = "123";
            }
            myXmlDoc.Save("config.xml");
        }
    }为什么在运行程序时每次到“XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Man").ChildNodes;”这一句时就抛出异常“未将对象引用设置到对象的实例。”未处理NullReferenceException 
不知道问题出在哪里,在这里先谢谢各位啦

解决方案 »

  1.   

    把Man改成Root试试,我记得好像XML处理时,需要知道根节点
      

  2.   

     XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Man").ChildNodes;  
    应该先找root再定位Man
      

  3.   

    XmlNode root = myXmlDoc.DocumentElement;XmlNode Man=root.SelectSingleNode("Man");
      

  4.   

    将Man改为Root 那一句没错了,但是后面的“xnf.Attributes["value"].Value = "123";”抛出异常,不知道怎么改 刚接触xml 见笑了啊 
    foreach 是想修改所有子节点的内容啊
      

  5.   


            XmlDocument myXmlDoc = new XmlDocument();
            myXmlDoc.Load("config.xml");
            XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Root/Man").ChildNodes;  //出现异常
            foreach (XmlNode xnf in nodeList)
            {
                if (xnf.Name == "Name")
                {
                    xnf.InnerText = "Ranen";
                }
            }
            myXmlDoc.Save("config.xml");
      

  6.   

     XmlNodeList nodeList = myXmlDoc.SelectSingleNode("//Man").ChildNodes这样应该就可以了吧 你试下看看吧!
      

  7.   

     XmlDocument myXmlDoc = new XmlDocument();
            myXmlDoc.Load("config.xml");
            XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Root/Man").ChildNodes;  //出现异常
            foreach (XmlNode xnf in nodeList)
            {
                if (xnf.Name == "Name")
                {
                    xnf.InnerText = "Ranen";
                }
            }
            myXmlDoc.Save("config.xml");
      

  8.   

     public void writeXML()
            {
                XmlDocument myXmlDoc = new XmlDocument();
                myXmlDoc.Load("config.xml");
                XmlNodeList nodeList = myXmlDoc.SelectSingleNode("Root").ChildNodes;  //出现异常
                foreach (XmlNode xnf in nodeList)
                {
                    xnf.Attributes["value"].Value = "123";
                }
                myXmlDoc.Save("config.xml");
            }
      

  9.   


        class XmlHelper
        {
            public void writeXML(string nodename,string content)
            {
                string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
                XmlDocument myXmlDoc = new XmlDocument();
                myXmlDoc.Load( path+"\\config.xml");
                XmlNode root = myXmlDoc.DocumentElement;
                XmlNodeList nodeList = root.SelectSingleNode("Man").ChildNodes;
                foreach (XmlNode xnf in nodeList)
                {
                    if (xnf.Name == nodename)
                    {
                        xnf.InnerText = content;
                    }
                }
                myXmlDoc.Save(path + "\\config.xml");
            }
        }