C#生成XML文件
来源:互联网 发布:php数组添加键值对 编辑:程序博客网 时间:2024/06/01 09:39
这两天公司需要将订单相关信息生成xml文件,用来做报关信息。
所以就分享这种生成方式吧。
本示例采用XmlSerializer生成。
大概思路:1、根据xml文件的格式对应写出相应的实体类;2、数据填充;3、进行xml序列化;4、读取流并保存为xml文件
好了,下面会给出一个完成的教程
1、这是一个xml文件格式,xmlRoot 为ClassA,此为根节点,此外有两个子节点 ;
<ClassA><Teacher><Name>xxxxx</Name><Age>xxxxxx</Age></OrderHead><Students><Name>1</itemNo><Age>2001003</goodsNo><Students><Students><Name>1</itemNo><Age>2001003</goodsNo></Students><ClassA>2、设计实体类
public Class ClassA{ public Teacher Teacher{get;set;} [XmlElement] pubilc Students[] Students{get;sett;} }pubilc Class Teacher{ pubilc string Name{get;set;} pubilc string Age{get;set;}}pubilc Class Students{ pubilc string Name{get;set;} pubilc string Age{get;set;}}
3、对实体进行数据填充后,即进行xml序列化并保存文件
if (!Directory.Exists(path))//path 即保存文件的目录 { Directory.CreateDirectory(path); } string fileName = string.Format("{0}-{1}.xml" , DateTime.Now.ToString("yyyyMMddHHmmssff"), "xxx"//定义文件名 ); string xml = ""; using (MemoryStream ms = new MemoryStream()) { //创建XML命名空间 XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); XmlSerializer serializer = new XmlSerializer(typeof(ClassA)); ns.Add("", "");//去除命名空间 serializer.Serialize(ms, request, ns); ms.Position = 0; using (StreamReader sr = new StreamReader(ms, Encoding.UTF8)) { xml = sr.ReadToEnd().Replace("_x003A_", ":"); if (!string.IsNullOrEmpty(fileName) && !string.IsNullOrEmpty(xml)) { if (File.Exists(fileName)) { File.Delete(fileName); } UTF8Encoding utF8Encoding = new UTF8Encoding(true); File.WriteAllText(Path.Combine(path, fileName), xml, (Encoding)utF8Encoding);//保存文件成功 } }
4、获取到文件名和路径后即可返回前台进行下载。至此大功告成。。。。。
阅读全文
0 0
- c# 生成 xml 文件
- C#生成XML文件
- C#生成XML文件
- C# 生成xml文件
- c#生成XML文件
- C#生成XML文件
- c# .net生成xml文件
- c#动态生成xml文件
- C#创建生成XML文件
- C#代码生成XML文件
- 【转】C#写、生成xml文件
- C#生成XML文件的 函数
- C#生成XML文件代码一例
- C#用递归生成xml文件代码
- C#生成数据库查询的XML文件
- C# 生成库表xml 文件
- C#生成代码提示XML文件
- C#生成代码提示XML文件
- phpcms在centos服务器中安装所遇到的问题及相关漏洞补全
- 用C++代码描绘UML中的 关联 依赖 组合 聚合 泛化
- 插入排序算法
- Spring Framework# WebFlux
- [解决]服务器不能通过域名访问本机
- C#生成XML文件
- vs2017生成dll动态库供java调取
- 计算几何学习记录
- Zero-Copy
- My97DatePicker控件显示时分秒
- L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误
- java关于Date类型的转换
- Word Break Ⅱ
- java学习记录——求出1-50的所有素数以及累加和