1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C# 输出流转化成输入流操作XML

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

时间:2023-04-03 10:38:12

相关推荐

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

C# Code

C# 输出流转化成输入流操作XMLC# CodeC#代码 收藏代码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); } }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。