这个是
XMl文本
<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Receive">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ReceID" type="xs:string" minOccurs="0" />
              <xs:element name="ReceBranch" type="xs:string" minOccurs="0" />
              <xs:element name="ReceOwner" type="xs:string" minOccurs="0" />
              <xs:element name="ReceRoute" type="xs:string" minOccurs="0" />
              <xs:element name="ReceBusiness" type="xs:string" minOccurs="0" />
              <xs:element name="ReceProvider" type="xs:string" minOccurs="0" />
              <xs:element name="ReceShip" type="xs:string" minOccurs="0" />
              <xs:element name="ReceAmount" type="xs:float" minOccurs="0" />
              <xs:element name="ReceWeight" type="xs:float" minOccurs="0" />
              <xs:element name="ReceComeTime" type="xs:dateTime" minOccurs="0" />
              <xs:element name="ReceRe" type="xs:string" minOccurs="0" />
              <xs:element name="ReceBranch1" type="xs:string" minOccurs="0" />
              <xs:element name="Creator" type="xs:string" minOccurs="0" />
              <xs:element name="CreateTime" type="xs:dateTime" minOccurs="0" />
              <xs:element name="ReceGroup" type="xs:string" minOccurs="0" />
              <xs:element name="ReceBranch2" type="xs:string" minOccurs="0" />
              <xs:element name="ReceMender" type="xs:string" minOccurs="0" />
              <xs:element name="ReceLast" type="xs:dateTime" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Stock">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="StocID" type="xs:string" minOccurs="0" />
              <xs:element name="StocBranch" type="xs:string" minOccurs="0" />
              <xs:element name="StocOrdert" type="xs:string" minOccurs="0" />
              <xs:element name="StocFirst" type="xs:string" minOccurs="0" />
              <xs:element name="StocEnd" type="xs:string" minOccurs="0" />
              <xs:element name="StocCard" type="xs:string" minOccurs="0" />
              <xs:element name="StocYard" type="xs:string" minOccurs="0" />
              <xs:element name="StocArea" type="xs:string" minOccurs="0" />
              <xs:element name="StocBreed" type="xs:string" minOccurs="0" />
              <xs:element name="StocMatter" type="xs:string" minOccurs="0" />
              <xs:element name="StocSpec" type="xs:string" minOccurs="0" />
              <xs:element name="StocChar" type="xs:string" minOccurs="0" />
              <xs:element name="StocLength" type="xs:string" minOccurs="0" />
              <xs:element name="StocBundle" type="xs:string" minOccurs="0" />
              <xs:element name="StocBirth" type="xs:string" minOccurs="0" />
              <xs:element name="StocType" type="xs:string" minOccurs="0" />
              <xs:element name="StocRule" type="xs:string" minOccurs="0" />
              <xs:element name="StocQuality" type="xs:string" minOccurs="0" />
              <xs:element name="StocBundleC" type="xs:string" minOccurs="0" />
              <xs:element name="StocRefer" type="xs:string" minOccurs="0" />
              <xs:element name="StocGrass" type="xs:string" minOccurs="0" />
              <xs:element name="StocBirthD" type="xs:dateTime" minOccurs="0" />
              <xs:element name="StocMeasure" type="xs:string" minOccurs="0" />
              <xs:element name="StocAmountI" type="xs:double" minOccurs="0" />
              <xs:element name="StocWeightI" type="xs:double" minOccurs="0" />
              <xs:element name="StocRe" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>为什么能读 能写 但是 Save的时候又被还原了 是什么 请指教 谢谢

解决方案 »

  1.   

    这个是读写方法
     try
                {
                    string strXmlPath = System.AppDomain.CurrentDomain.BaseDirectory + "ReportTemplate\\" + "Receive.xml";
                    //XmlDataDocument xDoc = new XmlDataDocument();
                    XmlDocument xDoc = new XmlDocument();
                    xDoc.Load(strXmlPath);
                    //XmlNode xn = xDoc.SelectSingleNode("/NewDataSet");
                    //XmlNodeList xnl = xn.ChildNodes;
                    //foreach (XmlNode xn1 in xnl)
                    //{
                    //    if (xn1.Name == "Stock" || xn1.Name == "Receive")
                    //        xn.RemoveChild(xn1);
                    //}
                    //XmlNodeList xnl = xDoc.SelectNodes("/NewDataSet/Stock");                //foreach (XmlNode xn in xnl)
                    //{
                    //    if (xn.Name == "Stock")
                    //        xn.ParentNode.RemoveChild(xn);                //}
                    DataSet ds = new DataSet();
                    ds.ReadXmlSchema(strXmlPath);
                    List<l_StockModel> listStock = new List<l_StockModel>();
                    l_ReceiveModel modReceicve = new l_ReceiveModel();
                    l_ReceiveBll bllReceive = new l_ReceiveBll(ConfigForm.GlobalBranchID);
                    l_StockBll bllStock = new l_StockBll(ConfigForm.GlobalBranchID);
                    modReceicve = bllReceive.GetModel("ReceID='" + ReceValue + "'");
                    listStock = bllStock.GetModelList("*", "StocKind=0 and StocIn='" + ReceValue + "'");
                    if (modReceicve != null)
                    {
                        DataRow dr = ds.Tables["Receive"].NewRow();
                        dr["ReceID"] = modReceicve.ReceID;
                        dr["ReceBranch"] = ConfigForm.GetBranchName(modReceicve.ReceBranch);
                        dr["ReceOwner"] = ConfigForm.GetClientName(modReceicve.ReceOwner);
                        dr["ReceRoute"] = ConfigForm.GetOutRouteName(Convert.ToInt32(modReceicve.ReceRoute));
                        dr["ReceBusiness"] = modReceicve.ReceOperation;
                        dr["ReceProvider"] = ConfigForm.GetClientName(modReceicve.ReceProvider);
                        dr["ReceShip"] = modReceicve.ReceShip;
                        dr["ReceAmount"] = modReceicve.ReceAmountI;
                        dr["ReceWeight"] = modReceicve.ReceWeightI;
                        dr["ReceComeTime"] = modReceicve.ReceCome;
                        dr["ReceRe"] = modReceicve.ReceRe;
                        dr["ReceBranch1"] = ConfigForm.GetBranchName(modReceicve.ReceBranch1);
                        dr["Creator"] = ConfigForm.GetUserName(modReceicve.ReceCreator);
                        dr["CreateTime"] = modReceicve.ReceCreate;
                        dr["ReceGroup"] = ConfigForm.GetGroupName(modReceicve.ReceGroup);
                        dr["ReceBranch2"] = ConfigForm.GetBranchName(modReceicve.ReceBranch2);
                        dr["ReceMender"] = ConfigForm.GetUserName(modReceicve.ReceMender);
                        dr["ReceLast"] = modReceicve.ReceLast;
                        ds.Tables["Receive"].Rows.Add(dr);
                    }
                    if (listStock.Count > 0)
                    {
                        for (int i = 0; i < listStock.Count; i++)
                        {
                            DataRow dr = ds.Tables["Stock"].NewRow();
                            dr["StocID"] = listStock[i].StocID;
                            dr["StocBranch"] = ConfigForm.GetBranchName(listStock[i].StocBranch);
                            dr["StocOrdert"] = listStock[i].StocOrder;
                            dr["StocFirst"] = listStock[i].StocFirst;
                            dr["StocEnd"] = listStock[i].StocEnd;
                            dr["StocCard"] = listStock[i].StocCard;
                            dr["StocYard"] = listStock[i].StocYard;
                            dr["StocArea"] = listStock[i].StocArea;
                            dr["StocBreed"] = ConfigForm.GetBreedName(listStock[i].StocBreed.ToString());
                            dr["StocMatter"] = ConfigForm.GetMatterName(listStock[i].StocMatter);
                            dr["StocSpec"] = listStock[i].StocSpec;
                            dr["StocChar"] = listStock[i].StocChar;
                            dr["StocLength"] = listStock[i].StocLength;
                            dr["StocBundle"] = listStock[i].StocBundle;
                            dr["StocBirth"] = listStock[i].StocBirth;
                            dr["StocType"] = listStock[i].StocType;
                            dr["StocRule"] = listStock[i].StocRule;
                            dr["StocQuality"] = listStock[i].StocQuality;
                            dr["StocBundleC"] = listStock[i].StocBundleC;
                            dr["StocRefer"] = listStock[i].StocRefer;
                            dr["StocGrass"] = listStock[i].StocGrass;
                            dr["StocBirthD"] = Convert.ToDateTime(listStock[i].StocBirthD);
                            dr["StocMeasure"] = listStock[i].StocMeasure;
                            dr["StocAmountI"] = listStock[i].StocAmountI;
                            dr["StocWeightI"] = listStock[i].StocWeightI;
                            dr["StocRe"] = listStock[i].StocRe1;
                            ds.Tables["Stock"].Rows.Add(dr);
                        }
                    }
                    ds.WriteXml(strXmlPath,XmlWriteMode.WriteSchema);
                    //ds.WriteXmlSchema(
                    //ds.WriteXmlSchema(strXmlPath);
                    xDoc.Save(strXmlPath);
                    
                    //xDoc.Save("E:\\Logistics Manage\\Debug\\ReportTemplate\\Receive.xml");                //System.Threading.Thread.Sleep(1000);
                    //xDoc.Load(strXmlPath);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
      

  2.   

    为什么能读 能写 但是 Save的时候又被还原了 是什么 请指教 谢谢
      

  3.   

    难道没有高手了吗? 我不信!  高手 where  啊 Y
      

  4.   

    设置断点跟踪一下 save的时候没有根据它的name来更新吧。
    String xml = ""; // XML内容
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.LoadXml(xml);
    XmlNode node = xmlDoc.SelectSingleNode("aasman/makeannc/field[@name='zone_maps']");
    if(node)
    {
     node.Attributes["value"] = "新值"
    }
      

  5.   

    http://blog.csdn.net/lovefootball/article/details/2785922