通過C#動態產生圖書資訊XML檔案

來源:互聯網
上載者:User
通過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) { 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 { 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   {   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檔案的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.