通过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. 今天升级了ADT到ADT 22.6.1,打包混淆的时候就出现了问题

    Proguard returned with error code 1. See console Error: Unable to access jarfile ..\lib\proguard.jar ...

  2. 小谈一下Java I/O

    java中的I/O操作宏观上来说就氛围两个种类,一个是字节流 ,一个是字符流,分别相应着一组类和接口 字节流: InputStream 输入流的基类 OutputStream 输出流的基类 对于字节流 ...

  3. [Effective C++ --027]尽量少做转型动作

    引言                                                                                                   ...

  4. C#_Wpf_DataContex上下文整个类绑定

    <Window x:Class="UserStore.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2 ...

  5. OpenCMS integration with Spring MVC--reference

    ref from:http://blogs.indrajitpingale.com/?p=8 http://blog.shinetech.com/2013/04/09/integrating-spri ...

  6. Models and the ServiceManager

    Models and the ServiceManager In the previous chapter we've learned how to create a "Hello Worl ...

  7. Mybatis案例

    MyBatis MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索. MyBatis 可 ...

  8. C++第四章循环

    学习时候的点: 1.用户来控制是否继续进行的模板: char goonLoop=’y’; while(goonLoop==’y’){ //logic cout<<”输入y 来继续当前逻辑, ...

  9. 在eclipse中运行storm-starter

    开源软件官网提供的demo无疑是学习开源软件的最好的最原始的样例. 在Storm官网里下载apache-storm-0.9.6.zip,里面\examples\storm-starter\src\jv ...

  10. Phantomjs安装

    环境:Centos 6.5 介绍:PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处 ...