主页 > 知识库 > 通过C#动态生成图书信息XML文件

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

热门标签:网站排名优化 科大讯飞语音识别系统 国美全国运营中心 人工智能 百度AI接口 电销业务 电商新玩法 客户服务
通过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\"?>");
ListBookInfo> 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);
ListBookInfo> 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 ListBookInfo> GetBookList()
{
ListBookInfo> bookList = new ListBookInfo>();
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信息的方法

标签:攀枝花 南平 咸宁 拉萨 益阳 POS机 厦门 枣庄

巨人网络通讯声明:本文标题《通过C#动态生成图书信息XML文件》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266