用xmldocument load进来一个xml文件修改后save()。。在load进来的时候,看到的是修改以前的状态,但xml实际上改了,????????、
怎么搞一下泥

解决方案 »

  1.   

    this.AddContactHistory(dir);        this.InitializeContactHistory(dir);    private void InitializeContactHistory(string dir)
        {
            XmlDocument xdoc = new XmlDocument();
            xdoc.Load(dir);        XmlDataSource xds = new XmlDataSource();
            xds.Data = xdoc.InnerXml;
            xds.XPath = "//note";
            this.GvContactHistory.DataSource = xds;
            this.GvContactHistory.DataBind();
            xdoc = null;
        }    private void AddContactHistory(string dir)
        {
            XmlDocument xdoc = new XmlDocument();
            xdoc.Load(dir);        XmlNode contactHistory = xdoc.SelectSingleNode("//contactHistory");
            XmlElement note = xdoc.CreateElement("note");        XmlElement date = xdoc.CreateElement("date");
            date.InnerText = DateTime.Now.ToString();        XmlElement content = xdoc.CreateElement("content");
            content.InnerText = this.txtContectHistory.Text;        note.AppendChild(date);
            note.AppendChild(content);        contactHistory.InsertBefore(note,contactHistory.FirstChild);       
            xdoc.Save(dir);
            xdoc = null;
        }
      

  2.   

    lovefootball(蟑螂(生活就是扯淡--做人要放低姿态)) ( ) 信誉:98  代码发了,有
    问题没
      

  3.   

    什么叫"用xmldocument load进来一个xml文件修改后save()。。在load进来的时候,看到的是修改以前的状态,但xml实际上改了,????????、"??
    看不懂你再说什么。
    被其他进程改了?
      

  4.   

    问题描述的还是有点不清楚我对问题的理解是
     你另外 new 一个实例。再次load()一下xml文档测试一下修改的结果了。
    不使用同一个实例。例如a.load() ..... a.save() 以后用b.load()看看。呵呵
      

  5.   

    在哪里看到以前的状态
    很明显,xml已经以及修改成功,lz用的时候是不会用问题的
    假如用记事本打开xml文件,在这个时候在程序里修改它,记事本里的xml文件是不会改变的
    假如你用vs打开,这个时候在程序里去修改它,vs会提示是否保存修改的文件,“是”,这下就是修改以后的文件了
      

  6.   

    禁用XmlDataSource的缓存
    xds.EnableCaching = false;