C# 输出流转化成输入流操作XML
C# Code
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);
}
}
分享到:
相关推荐
C#文件2进制流转换
C# XML文件读取示例
此流媒体转换服务器是基于VLC插件的,大部分格式视频都支持,但是监控录制的需要转码后才能转发,有什么问题,可以发y9424698@126.com来交流
一个简单的C#示例程序,工程中包含两个窗体,分别实现了DOM方式和流方式的XML文件读取及解析,运行环境VS2013.
C#读取Xml文件C#读取Xml文件C#读取Xml文件C#读取Xml文件
C#读取XML配置文件 C#读取XML配置文件C#读取XML配置文件C#读取XML配置文件C#读取XML配置文件
主要实现读取xml文件内容然后转换成List对象,两种实现方法。
本代码实现将JPG等图片文件转换为字节流并存储在TXT中,方便通信传输时将图片文件存储在数组中
主要实现读取xml文件内容然后转换成List对象,两种实现方法。
C#命令行参数标准输入流用法,使用Console.ReadLine(0
字节流转换成图片,要转换的字节流,转换得到的Image对象,根据图片路径返回图片的字节流,感兴趣的朋友看下下面的代码。 C#将图片和字节流相互转换代码: usingSystem; usingSystem.Collections.Generic; ...
C#读取XML相关节点,属性,修改XMl
C#把图片转换成数据流存入sqlsever数据库,再把数据库中的图片流读出来还原成图片显示
C#读取XML文件并写入数据库的三种方法,直接写入和先读取到内存再写入数据库
亲测好用,利用c# 的LinqXML技术 使用LINQ技术对XML文件进行读取
C#读取XML文件并将其内容显示在DataGrid组件中。可以学习一下如何使用C#读取XML中的节点数据,并将数据内容捆绑在DataGrid列表控件中,本例虽然简单,但在C#应用中是相当广泛的。
使用C#读取XML文件的简单操作类 xml .net
我自己写的用C#把excel数据转换成xml文件,但是没有把excel的进程关掉
C#操作XMl 三种方法 包括对读取XML 数据对数据库操作、修改XML 节点等
RSA公私钥pkcs8格式, 不能被C#程序所用,需要转转换为C#用的xml格式。这是转换用的c#源程序。