通过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. android小笔记

    1.启动其他应用程序 Intent launchIntent = getPackageManager().getLaunchIntentForPackage(currentAppInfo.getPac ...

  2. android126 zhihuibeijing 极光推送

    https://www.jpush.cn/ 张三把消息发送给自己的服务器,自己的服务器将消息发送给极光推送,然后极光推送将消息发送给妹子. 清单文件: <?xml version="1 ...

  3. C#数据操作LINQ

    Linq是language integrated query的缩写,即"语言集成查询"之意. Linq主要包含四个组件,Linq to object.Linq to XML.Lin ...

  4. Android之HTTP网络通信--GET传递

    说明 在做一个项目的时候难免会与服务器打交道,这里我就做一个小的Demo来简单的说明一下HTTP的使用,我这里使用的是图灵的接口,你也可以登陆www.tuling123.com进行申请.我使用的是上面 ...

  5. Azure CLI (一)如何安装和配置Azure CLI

    什么是Azure CLI 快速安装 Azure 命令行界面 (Azure CLI),以便使用一组基于 shell 的开源命令在 Azure 中创建和管理资源. 步骤 1:安装 . 登录https:// ...

  6. nargin函数的用法

    nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.通常可以用他来设定一些默认值,如下面的函数. 函数文件examp.m:function fout=charray(a, ...

  7. poj 1182 食物链(关系并查集)

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 62824   Accepted: 18432 Description ...

  8. hdu 1095 A+B for Input-Output Practice (VII)

    A+B for Input-Output Practice (VII) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32 ...

  9. javascript 获取下一个节点

    下一个节点: nextElementSibling 上一个节点 previousElementSibling <div> <select onchange="alert(t ...

  10. Hive UDAF介绍与开发

    UDAF简介 UDAF是用户自定义聚合函数.Hive支持其用户自行开发聚合函数完成业务逻辑. 通俗点说,就是你可能需要做一些特殊的甚至是非常扭曲的逻辑聚合,但是Hive自带的聚合函数不够玩,同时也还找 ...