将DataSet数据修改后保存到XML文件,保存后总是在XML文件中出现多余的代码,在网上也找过相关的资料,仍然没办法处理,相关代码如下:
/// <summary>
        /// 客户端XML文件路径
        /// </summary>
        string strXmlPath = Application.StartupPath + "\\ManagerXML.xml";
        /// <summary>
        /// 服务器端XML文件路径
        /// </summary>
        string strServerXmlPath = "\\10.0.136.71\\rv.aqqis.upgrade\\ManagerXML.xml";        /// <summary>
        /// 服务器端XML文件路径(备份)
        /// </summary>
        string strServerXmlPath_backup = "\\10.0.136.71\\rv.aqqis.upgrade\\ManagerXML_backup.xml";
        private void tbcCodeTable_Click(object sender, EventArgs e)
        {
            if (this.tbcCodeTable.SelectedTabPage.Name == this.tbpJiaoHua.Name)
            {
                try
                {
                    
                    if (System.IO.File.Exists(strXmlPath))
                    {
                        DG_Bind(strXmlPath);
                    }
                    else
                    {
                        MessageBox.Show("请升级应用程序!");
                    }
                }
                catch (Exception ex)
                {                    throw ex;
                }
            }
        }        DataSet ds;
        DataView dv;
        /// <summary>
        /// 获取XML数据绑定
        /// </summary>
        /// <param name="strXmlPath">XML文件路径</param>
        private void DG_Bind(string strXmlPath)
        {
            FileStream fs = new FileStream(strXmlPath, FileMode.Open, FileAccess.Read);
            StreamReader reader = new StreamReader(fs);
            ds = new DataSet();
            ds.ReadXml(reader);
            ds.Tables[0].Columns[0].ReadOnly = true;
            ds.Dispose();
            fs.Dispose();
            fs.Close();
            reader.Dispose();
            reader.Close();
            
            dv = new DataView();
            dv = ds.Tables[0].DefaultView;
            this.grcJiaoHua.DataSource = dv;
        }        private void Save()
        {
            try
            {
                
                this.grvJiaoHua.FocusedRowHandle = -1;
                FileStream fs = new FileStream(strXmlPath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                StreamWriter sw = new StreamWriter(fs);
                sw.Write("<?xml version=" + "'" + "1.0" + "'" + " encoding=" + "'" + "gb2312" + "'" + "?>\n");
                ds.WriteXml(sw);
                fs.Flush();
                sw.Flush();
                sw.Dispose();
                sw.Close();
                //ds.WriteXmlSchema(sw);
                ds.Dispose();
                
                fs.Dispose();
                fs.Close();
                MessageBox.Show("保存成功!");            }
            catch (Exception ex)
            {                MessageBox.Show(ex.Message);
            }
            finally
            { 
            
            }
            
        }
主要是保存的时候,会调用这个保存方法,不知道为什么就在XML文件中产生多余的代码,这是问题所在

解决方案 »

  1.   

    修改前的XML文件内容如下:<?xml version='1.0' encoding='gb2312'?>
    <ManagerXML>
      <manager>
        <产品编码>5310000001</产品编码>
        <物料名称>自产冶金焦</物料名称>
        <主副产品标识>主产品</主副产品标识>
        <一炼焦车间单炉重量>14.8</一炼焦车间单炉重量>
        <二炼焦车间单炉重量>14.8</二炼焦车间单炉重量>
        <三炼焦车间单炉重量>14.8</三炼焦车间单炉重量>
        <四炼焦车间单炉重量>22.6</四炼焦车间单炉重量>
        <年产量系数>0</年产量系数>
        <年产比例>0</年产比例>
        <维护人员>ryb</维护人员>
      </manager>
      <manager>
        <产品编码>5310000002</产品编码>
        <物料名称>焦粒</物料名称>
        <主副产品标识>副产品</主副产品标识>
        <一炼焦车间单炉重量>14.8</一炼焦车间单炉重量>
        <二炼焦车间单炉重量>14.8</二炼焦车间单炉重量>
        <三炼焦车间单炉重量>14.8</三炼焦车间单炉重量>
        <四炼焦车间单炉重量>22.6</四炼焦车间单炉重量>
        <年产量系数>0</年产量系数>
        <年产比例>0.015</年产比例>
        <维护人员>ryb</维护人员>
      </manager>
      <manager>
        <产品编码>5310000003</产品编码>
        <物料名称>焦粉</物料名称>
        <主副产品标识>副产品</主副产品标识>
        <一炼焦车间单炉重量>14.8</一炼焦车间单炉重量>
        <二炼焦车间单炉重量>14.8</二炼焦车间单炉重量>
        <三炼焦车间单炉重量>14.8</三炼焦车间单炉重量>
        <四炼焦车间单炉重量>22.6</四炼焦车间单炉重量>
        <年产量系数>0</年产量系数>
        <年产比例>0.045</年产比例>
        <维护人员>ryb</维护人员>
      </manager>
      <manager>
        <产品编码>5310000006</产品编码>
        <物料名称>轻苯</物料名称>
        <主副产品标识>副产品</主副产品标识>
        <一炼焦车间单炉重量>14.8</一炼焦车间单炉重量>
        <二炼焦车间单炉重量>14.8</二炼焦车间单炉重量>
        <三炼焦车间单炉重量>14.8</三炼焦车间单炉重量>
        <四炼焦车间单炉重量>22.6</四炼焦车间单炉重量>
        <年产量系数>0.94</年产量系数>
        <年产比例>0.0123</年产比例>
        <维护人员>ryb</维护人员>
      </manager>
      <manager>
        <产品编码>5310000005</产品编码>
        <物料名称>煤焦油</物料名称>
        <主副产品标识>副产品</主副产品标识>
        <一炼焦车间单炉重量>14.8</一炼焦车间单炉重量>
        <二炼焦车间单炉重量>14.8</二炼焦车间单炉重量>
        <三炼焦车间单炉重量>14.8</三炼焦车间单炉重量>
        <四炼焦车间单炉重量>22.6</四炼焦车间单炉重量>
        <年产量系数>0.94</年产量系数>
        <年产比例>0.046</年产比例>
        <维护人员>ryb</维护人员>
      </manager>
      <manager>
        <产品编码>5310000007</产品编码>
        <物料名称>硫酸铵</物料名称>
        <主副产品标识>副产品</主副产品标识>
        <一炼焦车间单炉重量>14.8</一炼焦车间单炉重量>
        <二炼焦车间单炉重量>14.8</二炼焦车间单炉重量>
        <三炼焦车间单炉重量>14.8</三炼焦车间单炉重量>
        <四炼焦车间单炉重量>22.6</四炼焦车间单炉重量>
        <年产量系数>0.94</年产量系数>
        <年产比例>0.0155</年产比例>
        <维护人员>ryb</维护人员>
      </manager>
      <manager>
        <产品编码>5500000008</产品编码>
        <物料名称>77</物料名称>
        <主副产品标识>副产品</主副产品标识>
        <一炼焦车间单炉重量>14.8</一炼焦车间单炉重量>
        <二炼焦车间单炉重量>14.8</二炼焦车间单炉重量>
        <三炼焦车间单炉重量>14.8</三炼焦车间单炉重量>
        <四炼焦车间单炉重量>22.6</四炼焦车间单炉重量>
        <年产量系数>0</年产量系数>
        <年产比例>320</年产比例>
        <维护人员>ryb</维护人员>
      </manager>
    </ManagerXML>
      

  2.   

    保存后的数据如下:前面的节点都没有问题,就是在最后</ManagerXML>结尾处,总有一些这样的代码:如:
    ML>
    还有这样的
    </ManagerXML>
    manager> 
    </ManagerXML>