通过C#动态生成图书信息XML文件

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

           Harry Potter   J K. Rowling   2005-08-15   29.99           Learning XML   Erik T. Ray   2003-10-18   39.95        

方法1:使用StringBuilder拼接XML 

///  /// 创建图书信息XML ///  public void CreateBookXML(string fileName) { StringBuilder xmlResult = new StringBuilder(""); List bookList = GetBookList(); //获取图书列表 if (bookList != null && bookList.Count > 0) { xmlResult.Append(""); foreach (BookInfo book in bookList) { xmlResult.AppendFormat("", book.BookId, book.Category); xmlResult.AppendFormat("{0}", book.Title); xmlResult.AppendFormat("{0}", book.Author); xmlResult.AppendFormat("{0}", book.PublishDate.ToString("yyyy-MM-dd")); xmlResult.AppendFormat("{0}", book.Price); xmlResult.Append(""); } xmlResult.Append(""); } //写入文件 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 

///  /// 创建图书信息XML ///  ///  public void CreateBookXML(string fileName) { try { FileStream fileStream = new FileStream(fileName, FileMode.Create); XmlTextWriter writer = new XmlTextWriter(fileStream, Encoding.UTF8); List 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 获取图书列表 

///    /// 获取图书列表   ///    ///    public List GetBookList()   {   List bookList = new List();   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 图书信息实体类 

///    /// 图书信息实体类   ///    public class BookInfo   {   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; } //销售价格   }

以上就是通过C#动态生成图书信息XML文件的内容,更多相关内容请关注PHP中文网(www.php.cn)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1431931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 05:56:53
下一篇 2025年12月17日 05:57:08

相关推荐

发表回复

登录后才能评论
关注微信