如题``我的代码是这样的```
XmlDocument document = new XmlDocument();
document.Load(fileurl);
XPathNavigator navigator = document.CreateNavigator();
navigator.MoveToFollowing("online", "");
navigator.AppendChild("<user><name>" + uname + "</name><logtime>" + time + "</logtime></user>");
从MSDN来看```XPathNavigator 是能修改和添加 XML文件的吧`````不知道为什么```
我运行上面代码的时候``从断点来看``navigator里面已经把内容添加进去了``
但是却不能写到XML文件??为什么???
而且navigator.canedit也是为true的```在线等```我已经弄了几个小时了```急求大虾指点下```

解决方案 »

  1.   

    天啊``杂还没人来啊``
    上帝啊。。派一个人来搭救搭救我吧````
    使用 XmlDocument doc = new XmlDocument()
                  doc.Load(XmlReader.Create(fileurl));
                   XmlNode root = doc.DocumentElement;
                  XmlElement elem1 = doc.CreateElement("name");
                   elem1.InnerText = uname;
                   XmlElement elem2 = doc.CreateElement("logtime");
                   elem2.InnerText = time;
                  XmlNode userelem = doc.CreateNode(XmlNodeType.Element, "user", "");
                 userelem.AppendChild(elem1);
                  userelem.AppendChild(elem2);
                  root.AppendChild(userelem);
                  doc.Save(fileurl);来保存XML文件的时候```又提示 文件在被使用``我晕啊```怀疑这个问题是不是和我使用静态类的关系````
    救命啊``崩溃ing
      

  2.   

    帅哥``你就多打几个字嘛```#-_-!```说一下怎么关闭doc嘛```
    汗```
    我用using ``提示
    错误 3 “System.Xml.XmlDocument”: using 语句中使用的类型必须可隐式转换为“System.IDisposable” 好郁闷```还有其他方法关闭doc么?
      

  3.   

    我刚才去开会了,你用取文件,然后用
    using(StreamReader sr = new StreamReader(filename)){
    ...
    doc.Load(sr);
    ...
    }
    这样应该就可以了
      

  4.   

    using(StreamReader   sr   =   new   StreamReader(filename,System.Text.Encoding.UTF8)){ 
    XmlDocument   doc   =   new   XmlDocument();
    doc.Load(sr); 
    ... 

    doc.save(filename);
      

  5.   

    XmlDocument   document   =   new   XmlDocument(); 不可以using(){}是因为这是新实例。
    StreamReader       sr       =       new       StreamReader();一样也不可以用using(){}.
      

  6.   

    还是不行啊``我晕啊``我把代码都改成这样了``try
            {
                using (StreamReader sr = new StreamReader(fileurl))
                {
                    XmlDocument doc = new XmlDocument();
                    doc.Load(sr);
                    XmlNode root = doc.DocumentElement;
                    XmlElement elem1 = doc.CreateElement("name");
                    elem1.InnerText = uname;
                    XmlElement elem2 = doc.CreateElement("logtime");
                    elem2.InnerText = time;
                    XmlNode userelem = doc.CreateNode(XmlNodeType.Element, "user", "");
                    userelem.AppendChild(elem1);
                    userelem.AppendChild(elem2);
                    root.AppendChild(userelem);
                    doc.Save(fileurl);
                    doc = null;
                    sr.Close();
                    sr.Dispose();
                }
            }
            catch (Exception ex)
            { }晕死了````而且我把静态类的其他方法里面的内容都全部注释掉了```
    晕``啊```````彻底无语了``
    这个问题搞了一个下午了``
      

  7.   

    XmlDocument       document       =       new       XmlDocument();   不可以using(){}是因为这是新实例。
    StreamReader               sr               =               new               StreamReader();一样也不可以用using(){}.
    不用using  也一样提示文件被使用```晕死了``
    而且我都把VS关闭了```再从新打开都还是这样提示呢``晕倒了````
      

  8.   

    try 
                    { 
                            using   (StreamReader   sr   =   new   StreamReader(fileurl)) 
                            { 
                                    XmlDocument   doc   =   new   XmlDocument(); 
                                    doc.Load(sr); 
    }
                                    XmlNode   root   =   doc.DocumentElement; 
                                    XmlElement   elem1   =   doc.CreateElement("name"); 
                                    elem1.InnerText   =   uname; 
                                    XmlElement   elem2   =   doc.CreateElement("logtime"); 
                                    elem2.InnerText   =   time; 
                                    XmlNode   userelem   =   doc.CreateNode(XmlNodeType.Element,   "user",   ""); 
                                    userelem.AppendChild(elem1); 
                                    userelem.AppendChild(elem2); 
                                    root.AppendChild(userelem); 
                                    doc.Save(fileurl); 
                                    doc   =   null; 
                                   
                            
                    } 
                    catch   (Exception   ex) 
                    {   } 
    你这样再看看,刚才的sr没有释放掉,你大括号位置不对
      

  9.   

    十分感谢 shanyinl 了``
    分数不多``请多多见谅``!!!