华域联盟 .Net 通过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)

{

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#定义的MP3播放类实例
  • C#实现简单播放mp3的方法
  • C#基于OLEDB获取Excel文件表结构信息的方法
  • C#编程实现动态改变配置文件信息的方法
  • C#获取文件相关信息的方法
  • C#获取指定文件著作权信息的方法
  • C#获取程序文件相关信息的方法
  • C#获得文件属性信息的实现方法
  • C#使用shell32获取文件属性的方法
  • C#实现获取mp3 Tag信息的方法

本文由 华域联盟 原创撰写:华域联盟 » 通过C#动态生成图书信息XML文件

转载请保留出处和原文链接:https://www.cnhackhy.com/52356.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部