zoukankan      html  css  js  c++  java
  • C#动态生成图书信息XML文件

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

    <?xml version="1.0" encoding="iso-8859-1"?> 
    <bookstore> 

    <book id="1" category="CHILDREN"> 
    <title>Harry Potter</title> 
    <author>J K. Rowling</author> 
    <publishDate>2005-08-15</publishDate> 
    <price>29.99</price> 
    </book> 

    <book id="2" category="WEB"> 
    <title>Learning XML</title> 
    <author>Erik T. Ray</author> 
    <publishDate>2003-10-18</publishDate> 
    <price>39.95</price> 
    </book> 

    </bookstore> 

    方法1:使用StringBuilder拼接XML 
    复制代码代码如下:

    /// <summary> 
    /// 创建图书信息XML 
    /// </summary> 
    public void CreateBookXML(string fileName) 
    { // www.jbxue.com
    StringBuilder xmlResult = new StringBuilder("<?xml version="1.0" encoding="utf-8"?>"); 
    List<BookInfo> bookList = GetBookList(); //获取图书列表 
    if (bookList != null && bookList.Count > 0) 

    xmlResult.Append("<bookstore>"); 
    foreach (BookInfo book in bookList) 

    xmlResult.AppendFormat("<book id="{0}" category="{1}">", book.BookId, book.Category); 
    xmlResult.AppendFormat("<title>{0}</title>", book.Title); 
    xmlResult.AppendFormat("<author>{0}</author>", book.Author); 
    xmlResult.AppendFormat("<publishDate>{0}</publishDate>", book.PublishDate.ToString("yyyy-MM-dd")); 
    xmlResult.AppendFormat("<price>{0}</price>", book.Price); 
    xmlResult.Append("</book>"); 

    xmlResult.Append("</bookstore>"); 


    //写入文件 
    try 

    //1.创建文件流 
    FileStream fileStream = new FileStream(fileName, FileMode.Create); 
    //2.创建写入器 
    StreamWriter streamWriter = new StreamWriter(fileStream); 
    //3.将内容写入文件 
    streamWriter.WriteLine(xmlResult); 
    //4.关闭写入器 
    streamWriter.Close(); 
    //5.关闭文件流 
    fileStream.Close(); 

    catch (Exception e) 
    { } 

    方法2:使用XmlTextWriter类创建XML 
    复制代码代码如下:

    /// <summary> 
    /// 创建图书信息XML 
    /// </summary> 
    /// <param name="fileName"></param> 
    public void CreateBookXML(string fileName) 

    try 
    {  // www.jbxue.com
    FileStream fileStream = new FileStream(fileName, FileMode.Create); 
    XmlTextWriter writer = new XmlTextWriter(fileStream, Encoding.UTF8); 
    List<BookInfo> bookList = GetBookList(); //获取图书列表 
    if (bookList != null && bookList.Count > 0) 

    writer.WriteStartDocument(); 
    writer.WriteStartElement("bookstore"); //创建父节点 
    foreach (BookInfo book in bookList) 

    writer.WriteStartElement("book"); //创建子节点 
    writer.WriteAttributeString("id", book.BookId.ToString()); //添加属性 
    writer.WriteAttributeString("category", book.Category); 
    //图书名称节点 
    writer.WriteStartElement("title"); 
    writer.WriteValue(book.Title); //节点赋值 
    writer.WriteEndElement(); 
    //图书作者节点 
    writer.WriteStartElement("author"); 
    writer.WriteValue(book.Author); 
    writer.WriteEndElement(); 
    //出版时间节点 
    writer.WriteStartElement("publishDate"); 
    writer.WriteValue(book.PublishDate.ToString("yyyy-MM-dd")); 
    writer.WriteEndElement(); 
    //销售价格节点 
    writer.WriteStartElement("price"); 
    writer.WriteValue(book.Price); 
    writer.WriteEndElement(); 

    writer.WriteEndElement(); //子节点结束 

    writer.WriteEndElement(); //父节点结束 

    writer.WriteEndDocument(); 
    writer.Close(); 
    fileStream.Close(); 

    catch (Exception e) 
    { } 

    XmlTextWriter类:表示提供快速、非缓存、只进方法的编写器,该方法生成包含 XML 数据的流或文件。 
    WriteStartDocument()方法:编写XML的声明。 
    WriteEndDocument()方法:关闭任何打开的元素或属性并将编写器重新设置为 Start 状态。 
    WriteStartElement(string localName)方法:创建一个节点的开始。 
    WriteAttributeString(string localName, string value)方法:给节点添加属性。 
    WriteValue(value)方法:给节点赋值。 

    3、其他代码 

    3.1 获取图书列表 
    复制代码代码如下:

    /// <summary> 
    /// 获取图书列表 
    /// </summary> 
    /// <returns></returns> 
    public List<BookInfo> GetBookList() 

    List<BookInfo> bookList = new List<BookInfo>(); 
    BookInfo book1 = new BookInfo() { 
    BookId = 1, 
    Category = "CHILDREN", 
    Title = "Harry Potter", 
    Author = "J K. Rowling", 
    PublishDate = new DateTime(2005,08,15), 
    Price = 29.99 
    }; 
    bookList.Add(book1); 
    BookInfo book2 = new BookInfo() 

    BookId = 2, 
    Category = "WEB", 
    Title = "Learning XML", 
    Author = "Erik T. Ray", 
    PublishDate = new DateTime(2003,10,18), 
    Price = 39.95 
    }; 
    bookList.Add(book2); 
    return bookList; 

    3.2 图书信息实体类 
    复制代码代码如下:

    /// <summary> 
    /// 图书信息实体类 
    /// </summary> 
    public class BookInfo 
    {  // www.jbxue.com
    public int BookId { set; get; } //图书ID 
    public string Title { set; get; } //图书名称 
    public string Category { set; get; } //图书分类 
    public string Author { set; get; } //图书作者 
    public DateTime PublishDate { set; get; } //出版时间 
    public Double Price { set; get; } //销售价格 
  • 相关阅读:
    beta冲刺————第二天(2/5)
    beta冲刺————第一天(1/5)
    个人作业——软件产品案例分析
    c++第七次作业____最后的总结
    计算器图形界面
    object-oriented second work
    第五次作业(文件处理)
    object-oriented first work
    第四次作业--计算器简单计算
    新的Calculator的规范作业
  • 原文地址:https://www.cnblogs.com/linuxnotes/p/3405779.html
Copyright © 2011-2022 走看看