xmltextwriter方法产生什么是xml文件件能写到远程服务器上吗

  什么是xml文件件是一种常用的文件格式例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影Xml是Internet环境中跨平台的,依赖于内容的技术是当前处理结构化文檔信息的有力工具。XML是一种简单的数据存储语言使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立虽然XML占用的空间仳二进制数据要占用更多的空间,但XML极其简单易于掌握和使用微软也提供了一系列类库来倒帮助我们在应用程序中存储什么是xml文件件。
 “在程序中访问进而操作什么是xml文件件一般有两种模型分别是使用DOM(文档对象模型)和流模型,使用DOM的好处在于它允许编辑和更新什么昰xml文件档可以随机访问文档中的数据,可以使用XPath查询但是,DOM的缺点在于它需要一次性的加载整个文档到内存中对于大型的文档,这會造成资源问题流模型很好的解决了这个问题,因为它对什么是xml文件件的访问采用的是流的概念也就是说,任何时候在内存中只有当湔节点但它也有它的不足,它是只读的仅向前的,不能在文档中执行向后导航操作”具体参见在Visual C#中使用XML指南之读取XML
 下面我将介绍三種常用的读取什么是xml文件件的方法。分别是 
这里我先创建一个什么是xml文件件,名为Book.xml下面所有的方法都是基于这个什么是xml文件件的,文件内容如丅:
为了方便读取,我还定义一个书的实体类,名为BookModel,具体内容如下:
 使用XmlDocument是一种基于文档结构模型的方式来读取什么是xml文件件.在什么是xml文件件中,我們可以把XML看作是由文档声明(Declare),元素(Element),属性(Attribute),文本(Text)等构成的一个树.最开始的一个结点叫作根结点,每个结点都可以有自己的子结点.得到一个结点后,可鉯通过一系列属性或方法得到这个结点的值或其它的一些属性.例如:
1.1 读取所有的数据.
使用的时候,首先声明一个XmlDocument对象,然后调用Load方法,从指定的路徑加载什么是xml文件件.
 然后可以通过调用SelectSingleNode得到指定的结点,通过GetAttribute得到具体的属性值.参看下面的代码
 5: // 得到根节点的所有子节点
 11: // 将节点转换为元素便于得到节点的属性值
 在正常情况下,上面的代码好像没有什么问题,但是对于读取上面的什么是xml文件件,则会出错,原因就是因为我上面的什麼是xml文件件里面有注释,大家可以参看Book.什么是xml文件件中的第三行,我随便加的一句注释.注释也是一种结点类型,在没有特别说明的情况下,会默认咜也是一个结点(Node).所以在把结点转换成元素的时候就会报错."无法将类型为“System.Xml.XmlComment”的对象强制转换为类型“System.Xml.XmlElement”。"
幸亏它里面自带了解决办法,那就昰在读取的时候,告诉编译器让它忽略掉里面的注释信息.修改如下:
最后读取完毕后,记得要关掉reader.
这样它就不会出现错误.
1.2 增加一本书的信息.
加载攵件并选出要结点:
创建一个结点,并设置结点的属性:
最后把book结点挂接在要结点上,并保存整个文件:
用上面的方法,是向已有的文件上追加数据,如果想覆盖原有的所有数据,可以更改一下,使用LoadXml方法:

直接把根结点选择出来了,后面不用SelectSingleNode方法选择根结点,直接创建结点即可,代码同上.
1.3 删除某一个數据
想要删除某一个结点,直接找到其父结点,然后调用RemoveChild方法即可,现在关键的问题是如何找到这个结点,上面的SelectSingleNode可以传入一个Xpath表,我们通过书的ISBN号來找到这本书所在的结点.如下:
1.4 修改某要条数据
修改某 条数据的话,首先也是用Xpath表达式找到所需要修改的那一个结点,然后如果是元素的话,就直接对这个元素赋值,如果是属性的话,就用SetAttribute方法设置即可.如下:
使用XmlTextReader读取数据的时候,首先创建一个流,然后用read()方法来不断的向下读,根据读取的结点嘚类型来进行相应的操作.如下:
关键是读取属性的时候,你要先知道哪一个结点具有几个属性,然后通过GetAttribute方法来读取.读取属性还可以用另外一种方法,就是用MoveToAttribute方法.可参见下面的代码:
XmlTextWriter写文件的时候,默认是覆盖以前的文件,如果此文件名不存在,它将创建此文件.首先设置一下,你要创建的什么昰xml文件件格式,
Linq是C#3.0中出现的一个新特性,使用它可以方便的操作许多数据源,也包括什么是xml文件件.使用Linq操作什么是xml文件件非常的方便,而且也比较簡单.下面直接看代码, 
先定义 一个方法显示查询出来的数据
直接找到元素为book的这个结点,然后遍历读取所有的结果.
插入结点和属性都采用new的方法,如下:
3.3 删除选中的数据
首先得到选中的那一行,通过ISBN号来找到这个元素然后用Remove方法直接删除,如下:
3.4 删除所有的数据
与上面的类似选出所有的数据,然后用Remove方法如下:
首先得到所要修改的某一个结点,然后用SetAttributeValue来修改属性用ReplaceNodes来修改结点元素。如下:
有关Linq to XML的知识大家可以參考LINQ国人首创LINQ专著——《精通LINQ数据访问技术》
}

我要回帖

更多关于 什么是xml文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信