通过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) 
{ // www.jbxue.com
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 
{  // www.jbxue.com
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 
{  // www.jbxue.com
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文件的更多相关文章

  1. dom4j生成和解析xml文件

    dom4j生成和解析xml文件 要生成和解析如下格式的xml文件: <?xml version="1.0" encoding="UTF-8"?> & ...

  2. Visual Studio动态生成版权信息

    Visual Studio动态生成版权信息 VS2008 1.1,类文件模板:在安装目录打开CS模板文件夹(D:\Program Files (x86)\Microsoft Visual Studio ...

  3. 第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

    第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多 ...

  4. 十三 web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

    crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息, ...

  5. Silverlight实用窍门系列:2.Silverlight动态加载外部XML指定地址的WebService---(动态加载外部XML文件中指定的WebService地址)【附带实例源码】

    接上节所讲的,Silverlight可以加载外部的XML文件里面的内容,那么我们可不可以在外部XML里面配置一个WebService地址,并且以此加载这个地址来动态加载WebService呢?这样子就 ...

  6. C++生成和解析XML文件

    1.xml 指可扩展标记语言(EXtensible Markup Language) 2.xml 是一种标记语言,类似html 3.xml 的设计宗旨是传输数据,而非显示数据 4.xml 标签没有被预 ...

  7. WF4.0以上使用代码完整自定义动态生成执行工作流Xaml文件

    给大家分享一下,如何完全使用代码自定义的创建生成工作流文件(用代码创建Xaml文件),并且动态加载运行所生成的工作流. 工作流生成后 在Xaml文件里的主要节点如下: 输入输出参数 <x:Mem ...

  8. C#生成、解析xml文件以及处理报错原因

    转载自:http://blog.csdn.net/lilinoscar/article/details/21027319 简单的介绍一下生成XML文件以及解析,因为有些数据不一定放到数据库,减少链接数 ...

  9. SSM 生成mapper中xml文件:未能解析映射资源:“文件嵌套异常

    错误日记我就网上随便找个贴着: 错误一: org.springframework.beans.factory.BeanCreationException: Error creating bean wi ...

随机推荐

  1. [Bootstrap] 4. Typogrphy

    What is Typography When we talk about typography, it's a big subject! Which of the following fall un ...

  2. 解决Windows2008Server上PLSQL登录时报ORA-12557

    公司的Oracle服务端是安装在一台Linux服务器上,版本号为11.1.0.7.0.我们开发的系统部署在Windows 2008 Server(x64),因为偶尔需要调用Oracle数据库,所以最开 ...

  3. [015]staic成员及staic成员函数

    C++primer里面讲过:static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联!这句话可能比较拗口, ...

  4. C#_MVC_Repository_CRUD_Model

    using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace iFlytekDemo ...

  5. android离线安装adt

    打开Eclipse, 在菜单栏上选择help->Install New SoftWare 出现如下界面: 点击 Add按钮,出现如下界面 在Name这而随意输入一个名字:ADT15:点击打开Ar ...

  6. PHP中的可变参数函数和可选参数函数

    1)可选参数函数.例如: <?phpfunction add($var1,$var2,$var3=0,$var4=0){ return$var1+$var2+$var3+$var4;}echo ...

  7. 网站压力测试工具webbench 安装与使用

    webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好用,安装使用也特别方便,并且非常小. 主要是 -t 参数用着比较爽,下面参考了张宴的文章 ...

  8. HeaderTemplate

    前台代码: <asp:Repeater ID="rptList" runat="server" onitemdatabound="doSomet ...

  9. 项目移植过程中报:“Project facet Java version 1.7 is not supported.” 错误

    转载: http://my.oschina.net/nly/blog/349081 在移植eclipse项目时,如果遇到 报:“Project facet Java version 1.7 is no ...

  10. centos7下载安装谷歌浏览器

    centos7安装完成结束后,发现自带的火狐浏览器不太习惯,自己还是习惯谷歌浏览器,因为是新手嘛,所以自己就各种找教程看如何下载安装谷歌浏览器,一个一个按照教程试验,终于最后试验成功了一个,亲测可用. ...