通过C#动态生成图书信息XML文件(Books.xml),文件如下:

  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <bookstore>
  3. <book id="1" category="CHILDREN">
  4. <title>Harry Potter</title>
  5. <author>J K. Rowling</author>
  6. <publishDate>2005-08-15</publishDate>
  7. <price>29.99</price>
  8. </book>
  9. <book id="2" category="WEB">
  10. <title>Learning XML</title>
  11. <author>Erik T. Ray</author>
  12. <publishDate>2003-10-18</publishDate>
  13. <price>39.95</price>
  14. </book>
  15. </bookstore>
  16. 方法1:使用StringBuilder拼接XML
    1. /// <summary>
    2. /// 创建图书信息XML
    3. /// </summary>
    4. public void CreateBookXML(string fileName)
    5. {
    6. StringBuilder xmlResult = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
    7. List<BookInfo> bookList = GetBookList();    //获取图书列表
    8. if (bookList != null && bookList.Count > 0)
    9. {
    10. xmlResult.Append("<bookstore>");
    11. foreach (BookInfo book in bookList)
    12. {
    13. xmlResult.AppendFormat("<book id=\"{0}\" category=\"{1}\">", book.BookId, book.Category);
    14. xmlResult.AppendFormat("<title>{0}</title>", book.Title);
    15. xmlResult.AppendFormat("<author>{0}</author>", book.Author);
    16. xmlResult.AppendFormat("<publishDate>{0}</publishDate>", book.PublishDate.ToString("yyyy-MM-dd"));
    17. xmlResult.AppendFormat("<price>{0}</price>", book.Price);
    18. xmlResult.Append("</book>");
    19. }
    20. xmlResult.Append("</bookstore>");
    21. }
    22. //写入文件
    23. try
    24. {
    25. //1.创建文件流
    26. FileStream fileStream = new FileStream(fileName, FileMode.Create);
    27. //2.创建写入器
    28. StreamWriter streamWriter = new StreamWriter(fileStream);
    29. //3.将内容写入文件
    30. streamWriter.WriteLine(xmlResult);
    31. //4.关闭写入器
    32. streamWriter.Close();
    33. //5.关闭文件流
    34. fileStream.Close();
    35. }
    36. catch (Exception e)
    37. { }
    38. }
    39. 方法2:使用XmlTextWriter类创建XML
      1. /// <summary>
      2. /// 创建图书信息XML
      3. /// </summary>
      4. /// <param name="fileName"></param>
      5. public void CreateBookXML(string fileName)
      6. {
      7. try
      8. {
      9. FileStream fileStream = new FileStream(fileName, FileMode.Create);
      10. XmlTextWriter writer = new XmlTextWriter(fileStream, Encoding.UTF8);
      11. List<BookInfo> bookList = GetBookList();    //获取图书列表
      12. if (bookList != null && bookList.Count > 0)
      13. {
      14. writer.WriteStartDocument();
      15. writer.WriteStartElement("bookstore");    //创建父节点
      16. foreach (BookInfo book in bookList)
      17. {
      18. writer.WriteStartElement("book");    //创建子节点
      19. writer.WriteAttributeString("id", book.BookId.ToString());    //添加属性
      20. writer.WriteAttributeString("category", book.Category);
      21. //图书名称节点
      22. writer.WriteStartElement("title");
      23. writer.WriteValue(book.Title);    //节点赋值
      24. writer.WriteEndElement();
      25. //图书作者节点
      26. writer.WriteStartElement("author");
      27. writer.WriteValue(book.Author);
      28. writer.WriteEndElement();
      29. //出版时间节点
      30. writer.WriteStartElement("publishDate");
      31. writer.WriteValue(book.PublishDate.ToString("yyyy-MM-dd"));
      32. writer.WriteEndElement();
      33. //销售价格节点
      34. writer.WriteStartElement("price");
      35. writer.WriteValue(book.Price);
      36. writer.WriteEndElement();
      37. writer.WriteEndElement();    //子节点结束
      38. }
      39. writer.WriteEndElement();    //父节点结束
      40. }
      41. writer.WriteEndDocument();
      42. writer.Close();
      43. fileStream.Close();
      44. }
      45. catch (Exception e)
      46. { }
      47. }
      48. XmlTextWriter类:表示提供快速、非缓存、只进方法的编写器,该方法生成包含 XML 数据的流或文件。
        WriteStartDocument()方法:编写XML的声明。
        WriteEndDocument()方法:关闭任何打开的元素或属性并将编写器重新设置为 Start 状态。
        WriteStartElement(string localName)方法:创建一个节点的开始。
        WriteAttributeString(string localName, string value)方法:给节点添加属性。
        WriteValue(value)方法:给节点赋值。
      49. 获取图书列表
        1. /// <summary>
        2. /// 获取图书列表
        3. /// </summary>
        4. /// <returns></returns>
        5. public List<BookInfo> GetBookList()
        6. {
        7. List<BookInfo> bookList = new List<BookInfo>();
        8. BookInfo book1 = new BookInfo() {
        9. BookId = 1,
        10. Category = "CHILDREN",
        11. Title = "Harry Potter",
        12. Author = "J K. Rowling",
        13. PublishDate = new DateTime(2005,08,15),
        14. Price = 29.99
        15. };
        16. bookList.Add(book1);
        17. BookInfo book2 = new BookInfo()
        18. {
        19. BookId = 2,
        20. Category = "WEB",
        21. Title = "Learning XML",
        22. Author = "Erik T. Ray",
        23. PublishDate = new DateTime(2003,10,18),
        24. Price = 39.95
        25. };
        26. bookList.Add(book2);
        27. return bookList;
        28. }
        29. 图书信息实体类

          1. /// <summary>
          2. /// 图书信息实体类
          3. /// </summary>
          4. public class BookInfo
          5. {
          6. public int BookId { set; get; }             //图书ID
          7. public string Title { set; get; }           //图书名称
          8. public string Category { set; get; }        //图书分类
          9. public string Author { set; get; }          //图书作者
          10. public DateTime PublishDate { set; get; }   //出版时间
          11. public Double Price { set; get; }           //销售价格
          12. }

C#动态生成XML的更多相关文章

  1. 动态生成xml文件

    使用xmlParser动态生成xml,输入的字符编码是gbk,结果怎么生成都不行,后来把输入转成utf8之后, 再生成就ok了

  2. Rss 订阅:php动态生成xml格式的rss文件

    Rss 简介: 简易信息聚合(也 叫聚合内容)是一种描述和同步网站内容的格式.使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新.网络用户可以在客户端借助于支持RS ...

  3. php7 使用dom动态生成xml文档

    <?php $dom = new DomDocument('1.0','gb2312'); //创建DOM对象 $store = $dom->createElement('store'); ...

  4. silverlight 从数据库获取到数据,动态生成XMLWEN文件,并获取文件进行操作

    // Silverlight中的独立存储是其内部的可信任的可访问文件空间,在这里你可以使用Silverlight随意的创建.读取.写入.删除目录和文件,它有一些类似于Cookie,但是它可以在客户端保 ...

  5. Java生成XML文件与XML文件的写入

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6651643.html  既然能在代码中解析XML文档获取数据,当然也能通过代码动态生成XML文档了. 与解析X ...

  6. C#动态生成图书信息XML文件

    通过C#动态生成图书信息XML文件,下面有个不错的示例,需要的朋友可以参考下 通过C#动态生成图书信息XML文件(Books.xml),文件如下: 复制代码代码如下: <?xml version ...

  7. mybatis使用注解替代xml配置,动态生成Sql

    mybatis使用注解替代xml配置时,遇到判断条件是否为null或者为空时,@Select很难搞定,不知道怎么办? mybatis3中增加了使用注解来配置Mapper的新特性,使用 SelectPr ...

  8. .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)

    .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml) 首先设置 Startup.cs 文件 配置 ConfigureServices services .Add ...

  9. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

随机推荐

  1. Centos 6.3Yum安装NodeJS

    1. 添加epel源: (1)查看机器位数 file /sbin/init 或者 file /bin/ls (2)X64: rpm -ivh http://download.fedoraproject ...

  2. php7简短而安全的数组遍历方法

    在写 PHP 的数组遍历的时候,我们通常会这样写: foreach ($definition['keys'] as $id => $val) { // ... } 但是其实这样会引起一个重要的问 ...

  3. 解析转换json xml 集合 ado

    json提取 string str = "[{\"JUDGE_RESULT\":\"B类\",\"JUDGE_RESULT\":\ ...

  4. Ngnix 安装与使用

    高性能web服务器-ngnix MySQL读写分离技术 sphinx和mongodb 课程内容简介 一般都是拿nginx作为负载均衡器使用.Apache还是web市场老大.全球的市场份额大概在(60% ...

  5. MySql笔记之修改MySQL提示符

    首先,了解下MYSQL提示符是神马东东 就是每次登陆mysql后出现的提示符 如果我们不喜欢这个提示符呢,那我们就改成我们喜欢的样子. 系统参数提示符 举个栗子 就改成相应的提示符了,那么可否随意改名 ...

  6. 线段树【p1115】 最大子段和

    题目描述-->p1115 最大子段和 虽然是一个普及-的题,但我敲了线段树 qwq 数组定义 \(lsum[ ]\)代表 该区间左端点开始的最大连续和. \(rsum[ ]\)代表 该区间右端点 ...

  7. Ext分区文件恢复工具extundelete

     Ext分区文件恢复工具extundelete Ext是延伸文件系统(Extended system)的缩写.它是为Linux内核开发的第一个文件系统.它有多个版本.现在常见的是Ext3和Ext4.由 ...

  8. [BZOJ 2957]楼房重建(THU2013集训)(线段树维护单调栈)

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2957 分析: 根据题意,就是比较斜率大小 只看一段区间的话,那么这段区间能看见的楼房数量就是这 ...

  9. Xamarin.Forms 调用腾讯地图

    用Xamarin.Forms 也有一段时间了,跨平台,生成native代码的噱头 天花乱坠的, 其中的坑,只有用过的人才懂... 就拿地图来说...总不能用google地图吧 于是只能自己想办法了. ...

  10. cbuffer padding

    nx glslc float 起始于 内存位置4x0 ,4x1,4x2 ,4x3.... bit float2 起始于 内存位置2x4x0 ,2x4x1,2x4x2 ,2x4x3.... bit fl ...