通過(guò)C#動(dòng)態(tài)生成圖書(shū)信息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拼接X(jué)ML
/// <summary>
/// 創(chuàng)建圖書(shū)信息XML
/// </summary>
public void CreateBookXML(string fileName)
{
StringBuilder xmlResult = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
List<BookInfo> bookList = GetBookList(); //獲取圖書(shū)列表
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>");
}
//寫(xiě)入文件
try
{
//1.創(chuàng)建文件流
FileStream fileStream = new FileStream(fileName, FileMode.Create);
//2.創(chuàng)建寫(xiě)入器
StreamWriter streamWriter = new StreamWriter(fileStream);
//3.將內(nèi)容寫(xiě)入文件
streamWriter.WriteLine(xmlResult);
//4.關(guān)閉寫(xiě)入器
streamWriter.Close();
//5.關(guān)閉文件流
fileStream.Close();
}
catch (Exception e)
{ }
}
方法2:使用XmlTextWriter類(lèi)創(chuàng)建XML
/// <summary>
/// 創(chuàng)建圖書(shū)信息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(); //獲取圖書(shū)列表
if (bookList != null && bookList.Count > 0)
{
writer.WriteStartDocument();
writer.WriteStartElement("bookstore"); //創(chuàng)建父節(jié)點(diǎn)
foreach (BookInfo book in bookList)
{
writer.WriteStartElement("book"); //創(chuàng)建子節(jié)點(diǎn)
writer.WriteAttributeString("id", book.BookId.ToString()); //添加屬性
writer.WriteAttributeString("category", book.Category);
//圖書(shū)名稱(chēng)節(jié)點(diǎn)
writer.WriteStartElement("title");
writer.WriteValue(book.Title); //節(jié)點(diǎn)賦值
writer.WriteEndElement();
//圖書(shū)作者節(jié)點(diǎn)
writer.WriteStartElement("author");
writer.WriteValue(book.Author);
writer.WriteEndElement();
//出版時(shí)間節(jié)點(diǎn)
writer.WriteStartElement("publishDate");
writer.WriteValue(book.PublishDate.ToString("yyyy-MM-dd"));
writer.WriteEndElement();
//銷(xiāo)售價(jià)格節(jié)點(diǎn)
writer.WriteStartElement("price");
writer.WriteValue(book.Price);
writer.WriteEndElement();
writer.WriteEndElement(); //子節(jié)點(diǎn)結(jié)束
}
writer.WriteEndElement(); //父節(jié)點(diǎn)結(jié)束
}
writer.WriteEndDocument();
writer.Close();
fileStream.Close();
}
catch (Exception e)
{ }
}
XmlTextWriter類(lèi):表示提供快速、非緩存、只進(jìn)方法的編寫(xiě)器,該方法生成包含 XML 數(shù)據(jù)的流或文件。
WriteStartDocument()方法:編寫(xiě)XML的聲明。
WriteEndDocument()方法:關(guān)閉任何打開(kāi)的元素或?qū)傩圆⒕帉?xiě)器重新設(shè)置為 Start 狀態(tài)。
WriteStartElement(string localName)方法:創(chuàng)建一個(gè)節(jié)點(diǎn)的開(kāi)始。
WriteAttributeString(string localName, string value)方法:給節(jié)點(diǎn)添加屬性。
WriteValue(value)方法:給節(jié)點(diǎn)賦值。
3、其他代碼
3.1 獲取圖書(shū)列表
/// <summary>
/// 獲取圖書(shū)列表
/// </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 圖書(shū)信息實(shí)體類(lèi)
/// <summary>
/// 圖書(shū)信息實(shí)體類(lèi)
/// </summary>
public class BookInfo
{
public int BookId { set; get; } //圖書(shū)ID
public string Title { set; get; } //圖書(shū)名稱(chēng)
public string Category { set; get; } //圖書(shū)分類(lèi)
public string Author { set; get; } //圖書(shū)作者
public DateTime PublishDate { set; get; } //出版時(shí)間
public Double Price { set; get; } //銷(xiāo)售價(jià)格
}
相關(guān)文章
ASP.NET MVC中設(shè)置跨域訪問(wèn)問(wèn)題
這篇文章主要介紹了ASP.NET MVC中設(shè)置跨域訪問(wèn)問(wèn)題,需要的朋友可以參考下2018-06-06Visual Studio ASP.NET Core MVC入門(mén)教程第一篇
這篇文章主要為大家詳細(xì)介紹了Visual Studio ASP.NET Core MVC入門(mén)教程的第一篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03asp.net 驗(yàn)證字符串是否為純數(shù)字檢測(cè)函數(shù)
如何驗(yàn)證字符串是否為純數(shù)字2010-03-03Entity?Framework使用Fluent?API配置案例
本文詳細(xì)講解了Entity?Framework使用Fluent?API配置案例的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03ASP.Net MVC+Data Table實(shí)現(xiàn)分頁(yè)+排序功能的方法
這篇文章主要介紹了ASP.Net MVC+Data Table實(shí)現(xiàn)分頁(yè)+排序功能的方法,結(jié)合實(shí)例形式分析了asp.net基于mvc架構(gòu)實(shí)現(xiàn)的數(shù)據(jù)查詢(xún)、排序、分頁(yè)顯示等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06ASP.NET 動(dòng)態(tài)寫(xiě)入服務(wù)器端控件
使用Asp.net進(jìn)行開(kāi)發(fā)時(shí),因?yàn)槟承┬枨笤颍枰陧?yè)面中動(dòng)態(tài)添加控件。當(dāng)然,這些控件可以是普通的html標(biāo)簽,也可以是Asp.net獨(dú)有的服務(wù)器端控件。2009-04-04ASP.NET清空緩存時(shí)遇到的問(wèn)題簡(jiǎn)析
本文將為大家介紹的是ASP.NET網(wǎng)站清空緩存時(shí)遇到的問(wèn)題,主要是基于ObjectDataSource讀取數(shù)據(jù)位置的問(wèn)題,希望對(duì)大家有所幫助。2015-10-10Asp.Mvc?2.0用戶(hù)客戶(hù)端驗(yàn)證實(shí)例講解(3)
這篇文章主要介紹了Asp.Mvc?2.0實(shí)現(xiàn)客戶(hù)端驗(yàn)證功能,本文使用jquery.validate插件進(jìn)行驗(yàn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-08-08