• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#中XmlTextWriter读写xml文件详细介绍(转)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 
.NET中包含了很多支持XML的类,这些类使得程序员使用XML编程就如同理解XML文件一样简单。在这篇文章中,我将给出这样的一个类的使用示例,这个类就是XmlTextWriter类

XmlTextWriter类允许你将XML写到一个文件中去。这个类包含了很多方法和属性,使用这些属性和方法可以使你更容易地处理XML。为了使用这个类,你必须首先创建一个新的XmlTextWriter对象,然后你可以将XML片断加入到这个对象中。这个类中包含了不少的方法用于将各种类型的XML元素添加到XML文件中,下表给出了这些方法的名字和描述情况:

方法 描述
WriteStartDocument 书写版本为“1.0”的 XML 声明
WriteEndDocument 关闭任何打开的元素或属性
Close 关闭流
WriteDocType 写出具有指定名称和可选属性的 DOCTYPE 声明
WriteStartElement 写出指定的开始标记
WriteEndElement 关闭一个元素
WriteFullEndElement 关闭一个元素,并且总是写入完整的结束标记
WriteElementString 写出包含字符串值的元素
WriteStartAttribute 书写属性的起始内容
WriteEndAttribute 关闭上一个 WriteStartAttribute 调用
WriteRaw 手动书写原始标记
WriteString 书写一个字符串
WriteAttributeString 出具有指定值的属性
WriteCData 写出包含指定文本的 <![CDATA[...]]> 块
WriteComment 写出包含指定文本的注释 <!--...-->
WriteWhiteSpace 写出给定的空白
WriteProcessingInstruction 写出在名称和文本之间带有空格的处理指令,如下所示:<?name text?>

如果你对于XML十分熟悉,那么你一定能很好的理解上面的这些方法。下面我们将给出一个例子,在这个例子中,我们将先创建一个文档,添加一些元素,然后关闭这个文档。添加了元素后你还可以添加子元素,属性和其他内容。下面的代码就是这样的一个例子,它创建了一个文件名为title的XML文件。

 

 

 

 

如果你编译并且执行上面的代码,你将创建这个XML文件,文件中包含如下内容:

<items>     <title>Unreal Tournament 2003</title>     <title>C&C: Renegade</title>     <title>Dr. Seuss's ABC</title> </items>

 

上面的代码创建了一个名为writer的XmlTextWriter对象。当这个对象被创建时,它被关联到一个名为titles.xml的文件。接着,程序创建了一个叫做items的根属性,WriteStartElement方法创建了这个属性的开始标签。接下来,程序调用了WriteElementString方法创建了三个子元素。从上面的代码你还可以看到,这个方法使用第一个参数(在上面的程序中是title)作为元素的标签;使用第二个参数作为元素的值。当你添加了所有的元素后,你需要关闭根元素。这时你可以调用WriteEndElement方法关闭那个最近被打开的元素;在本例中,这个最近被打开的元素就是根元素。当所有的数据都已经写好,根元素也已经关闭时,你可以将信息传送给你的XmlTextWriter。这意味着这时候你可以调用Close方法关闭它了。

上面的代码相对十分的简单,下面我们看一个使用了XmlTextWriter类中更多方法,功能更加完善的例子。

 

 

 

 

上面代码编译运行后将得到myMedia.xml文件,文件的内容为:

 

 

 

 

上面代码中的注释说明了这个程序的功能是如何实现的。需要记住的一件事是:当调用方法开始一个操作时,你需要在程序的合适的地方调用方法结束这个操作。例如,你调用了StartElement,你就必须调用EndElement关闭元素;当然在这两个调用之间你也可以加入一个子元素。无论你何时调用EndElement方法,它总是关闭最近使用StartElement方法打开的那个元素(这和栈的工作方式很相似)。

使用XmlTextWriter十分的容易,不过我还是建议你自己动手试试这些代码和方法。你试过以后会发现这些代码能够很容易地集成到你的程序中。你还应该记住,XmlTextWriter仅仅是.NET提供的众多XML类中的一个。和XmlTextWriter一样,其他的XML类也十分的容易使用

 

2)
我用的是一种很笨的方法,但可以帮助初学者了解访问XML节点的过程。
已知有一个XML文件(bookstore.xml)如下:

 

 

 

 

1、往<bookstore>节点中插入一个<book>节点:

 

 

 

结果为:

 

 

 

2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。

 

 

 

最后结果为:

 

 

 

3、删除 <book genre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <book genre="update李赞红" ISBN="2-3631-4">节点。

 

 

 

最后结果为:

 

 

 

 

4、显示所有数据。

    XmlNodeList xnf1=xe.ChildNodes;     foreach(XmlNode xn2 in xnf1)     {      Console.WriteLine(xn2.InnerText);//显示子节点点文本     }    }

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#中使用桌面Graphics画图发布时间:2022-07-10
下一篇:
快速排序(C#实现)发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap