通过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. 谈谈dpdk应用层包处理程序的多进程和多线程模型选择时的若干考虑

    看到知乎上有个关于linux多进程.多线程的讨论:http://www.zhihu.com/question/19903801/answer/14842584 自己项目里也对这个问题有过很多探讨和测试 ...

  2. Linux下用gSOAP开发Web Service服务端和客户端程序(一)

    1.功能说明: 要开发的Web Service功能非常简单,就是一个add函数,将两个参数相加,返回其和. 2.C版本的程序: (1)头文件:SmsWBS.h,注释部分不可少,url部分的IP必须填写 ...

  3. VS2017源代码版本管理

    VS2017源代码版本管理有两种方式:Git(代码提交到服务器)和Team Foundation Server(代码提交到局域网) 一.Git版本管理(上传到码云服务器https://gitee.co ...

  4. Codeforces Round #444 (Div. 2)A. Div. 64【进制思维】

    A. Div. 64 time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  5. [BZOJ1194][HNOI2006][强连通分量Tarjan+dfs]潘多拉的盒子

    [BZOJ1194][HNOI2006]潘多拉的盒子 Input 第一行是一个正整数S,表示宝盒上咒语机的个数,(1≤S≤50).文件以下分为S块,每一块描述一个咒语机,按照咒语机0,咒语机1„„咒语 ...

  6. 为什么Linux的Fdisk分区时First Sector为2048?

    是为EFI启动预留的,而Fdisk也随着这波的兴起而跟着变. 参考: http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/disc-pa ...

  7. 【译】PHP之道(PHP the right way)

    刚入门的同学觉得自己能用PHP写出各种程序就很NB了,但其实作为一个专业程序员,你得有个全面点的知识结构.单元测试总得听过,文档工具总得用用,Xss总得会防.推荐大家把<PHP the righ ...

  8. Android简单的利用MediaRecorder进行录音的实例代码

    MainActivity.java package com.example.soundrecord_demo; import java.io.IOException; import android.m ...

  9. Windows查看所有的端口及端口对应的程序

    步骤一.Windows查看所有的端口 点击电脑左下角的开始,然后选择运行选项,接着我们在弹出的窗口中,输入[cmd]命令,进行命令提示符.然后我们在窗口中输入[netstat -ano]按下回车,即会 ...

  10. win10 创建安卓模拟器及启动的方法

    一打开 安卓 studio 然后点击AVD manager 创建一个模拟器 二 通过命令行快速启动模拟器 D:\Android\sdk\tools\emulator.exe -netdelay non ...