C# 输出流转化成输入流操作XML

C# Code

 

C# 输出流转化成输入流操作XML     
 
C# Code
 
C#代码  收藏代码
class Program  
    {  
        static void Main(string[] args)  
        {  
            DataSet ds = new DataSet();  
            ds.ReadXmlSchema(@"D:\szschema.xsd");  
            DataTable dt = ds.Tables["ITEMADD"];  
            StructHead(ds.Tables["HEADER"]);  
            StructDatas(ds.Tables["DATAS"]);  
            int m = 0;  
            StructData( ds.Tables["DATA"], m);  
            StructITEMADD(ds.Tables["ITEMADD"], m);  
            string filepath = "D:\\_123.xml";  
  
            //暂存流用于操作xml使用  
            MemoryStream ms = new MemoryStream();  
            XmlTextWriter  XmlWt = new XmlTextWriter(ms, Encoding.UTF8);  
            //保存xml文件的写入流  
            TextWriter t = new StreamWriter(filepath, false, Encoding.UTF8);  
            try  
            {  
                ds.WriteXml(XmlWt);  
                XmlWt.Flush();  
                //将流转换成byte数组  
                int mscount = (int)ms.Length;  
                byte[] temp = new byte[mscount];  
                ms.Seek(0, SeekOrigin.Begin);  
                ms.Read(temp, 0, mscount);  
                //将utf8编码的byte返回成文本  
                string xml = new UTF8Encoding().GetString(temp).Trim();  
                //操作xml  
                XmlDocument doc = new XmlDocument();  
                doc.LoadXml(xml);  
                //查找data节点  
                XmlNode data = doc.SelectNodes("FREIGHTCPIC/DATAS/DATA").Item(0);  
                if (data != null)  
                {  
                    XmlNodeList itemaddlist = data.SelectNodes("ITEMADD");  
                    XmlNode itemadd2 = itemaddlist.Item(1);  
                    XmlNodeList itemaddsub = itemadd2.ChildNodes;  
                    int ncount = itemaddsub.Count;  
                    for (int i = 0; i < ncount; i++)  
                    {  
                        itemaddlist.Item(0).AppendChild(itemaddsub.Item(0));  
                    }  
                    data.RemoveChild(itemadd2);  
                    //保存修改后的xml  
                    doc.Save(t);  
                }  
            }  
            catch  
            {  
                //如果发生错误,保存未修改前的xml  
                ds.WriteXml(t);  
            }  
            finally  
            {  
                XmlWt.Close();  
                ms.Close();  
                ds.Dispose();  
                t.Close();  
            }  
        }  
  
        private static void StructHead(DataTable dt)  
        {  
            DataRow row = dt.NewRow();  
            row["TYPE"] = "IN";  
            row["WORKTYPE"] = "0";  
            row["CLASSESTYPE"] = "1";  
            row["LOGINUSERNAME"] = "1";  
            row["LOGINPASSWORD"] = "1";  
            dt.Rows.Add(row);  
        }  
        private static  void StructDatas(DataTable dt)  
        {  
            DataRow row = dt.NewRow();  
            row["DATAS_Id"] = "0";  
            dt.Rows.Add(row);  
        }  
  
        private static  void StructITEMADD(DataTable dt, int i)  
        {  
            DataRow row = dt.NewRow();  
            row["ITEMADDCODE"] = "Z000054C";  
            row["ITEMADDCONTENT"] = "被保险人/投保人保证本保单投保内容完全符合与保险人签署之有效《货物运输预约保险单》所载明的条件";  
            row["DATA_Id"] = i;  
            dt.Rows.Add(row);  
  
            row = dt.NewRow();  
            row["ITEMADDCODE"] = "Z000055C";  
            row["ITEMADDCONTENT"] = "本单为货物起运后投保,保险责任自{" + DateTime.Now.ToString("yyyy-MM-dd") + "}起";  
            row["DATA_Id"] = i;  
            dt.Rows.Add(row);  
        }  
  
        private static  void StructData( DataTable dt, int i)  
        {  
  
            DataRow row = dt.NewRow();  
            row["AUDITTYPE"] = "A";  
            row["UNITCODE"] = "50232";  
            row["APPLYNO"] = "22222222222222222222";//协议申请号  
            row["APPLYENDORSENO"] = "222222222222222222222222222222222";//协议批改号  
            row["APPLYCODE"] = "9000122236800";  
            row["APPLYNAME"] = "深圳市XXXXX有限公司";  
            row["INSURANTNAME"] = "";  
            row["CLASSTYPE"] = "";  
            row["MARK"] = "";  
            row["QUANTITY"] = "";  
            row["ITEM"] = "";  
            row["PACKCODE"] = "01";  
            row["ITEMCODE"] = "";  
            row["FLIGHTAREACODE"] = "";  
            row["KIND"] = "";  
            row["KINDNAME"] = "";  
            row["VOYNO"] = "";  
            row["STARTPORT"] = "深圳";  
            row["TRANSPORT1"] = "";  
            row["ENDPORT"] = "";  
            row["CLAIMAGENT"] = "";  
            row["MAINITEMCODE"] = "ZH";  
            row["ITEMCONTENT"] = "国内水路、陆路货物运输保险条款综合险";  
            row["CREDITNO"] = "";  
            row["PRINTNUM"] = "1";  
            row["CURRENCYCODE"] = "01";  
            row["PRICECOND"] = "1";  
            row["INVAMOUNT"] = "0";  
            row["INCRATE"] = "";  
            row["AMOUNT"] ="";  
            row["RATE"] = "";  
            row["PREMIUM"] = "";  
            row["POLICYNUM"] = "1";  
            row["CLAIMCURRENCYCODE"] = "01";  
            row["CLAIMPAYPLACE"] = "0";  
            row["FCURRENCYCODE"] = "01";  
            row["EFFECTDATE"] = "";  
            row["SAILDATE"] = "";  
            row["FRANCHISE"] = "1";  
            row["SPECIALIZE"] ="";  
            row["SPECIALIZE"] = "";  
            row["USERNO"] = "";  
            row["DATA_Id"] = i;  
            row["DATAS_Id"] = "0";  
            dt.Rows.Add(row);  
        }  
    }  

 

 

 
posted @ 2014-12-19 08:58  璞子的家  阅读(521)  评论(0编辑  收藏  举报