c操作xml文件

c操作xml文件

ID:20965964

大小:1.18 MB

页数:34页

时间:2018-10-18

c操作xml文件_第1页
c操作xml文件_第2页
c操作xml文件_第3页
c操作xml文件_第4页
c操作xml文件_第5页
资源描述:

《c操作xml文件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、·Xml作为一个非常重要的纯文本格式已经进入了编程的很多领域,作为一个面向应用层面的c#也一样在很多领域离不开Xml。但是,c#在很多方面对Xml做了写封装,以至于很多操作Xml的代码,都不需要手动去写。例如,c#写WebService这种需要大量操作Xml的服务,除了极其个别的情况下,基本看不到任何操作Xml的代码。这是c#的一个优势,但是,最近发现正是这样一些c#的优势,导致了新一代c#程序员的能力退化。因为90%的情况下,不需要手动操作Xml,所以,年轻的c#程序员也觉得没必要为了这10%的情况,而去学如何手工读写

2、Xml。真不知道,ms提供了这么简便的工具,是ms做的善事还是作的孽。。。好吧,废话就不说了,转入主题。1.如何用XmlDom的方式读取XmlXmlDom方式是最原始的一种操作Xml的途径,从.netFramework1.0开始就开始支持Dom方式。1.1如何以Dom方式加载Xml要读取Xml首先要加载Xml,加载的方式有两种,一种是从流或类似的Reader加载,例如:当然还可以从字符串加载: 1.1读取无namespace的Xml   Xml已经准备好了,下面就开始读取这个Xml。现在希望读取data节下面的所有ite

3、m中的text,那么就可以:   看看运行结果:   但是,这样写的问题有很多,例如在data节点中有非item的节点,这样访问,也就被无差别的把非item项也写出来了。例如把如果数据改成这样:   这样,在data节里面,除了4个item,还有一个other,这个other是不需要的,必须被排除掉,如果直接用第一中ChildNodes去访问的话,会得到这样的结果:   显然“!@#”也被选择出来了,这可不是我们所期望的,   所以,改用XPath的方式访问:   其运行结果为:   很好的other项排除在需要的节点外

4、,这才是我们真正想要的结果:)1.2读取有namespace的Xml   和c#一样Xml也有namespace,并且namespace在Xml中的作用巨大,也许你并未感受到namespace的作用,但是,你可能已经不得不面对那些有namespace的Xml了。   好吧,我们先加载一个有namespace的xml:   这里,我们准备了一个namespace——urn:vwxyzh,并且把这个namespace缩写成v。举个例子来说,v:data就是urn:vwxyzh这个namespace下面的data。   现在再

5、用原来的XPath去跑一下:   Oh,no!一个也没有选择出来,为什么会这样哪?   因为原来的/data/item中的data节是没有namespace的data,和urn:vwxyzh的data不是一回事,所以,这个XPath根本定为不到任何节点。   必须要修改部分代码才能达到我们的目的,先来看看Select方法有哪些重载吧:   第一个重载,就是之前使用的那个,第二个重载,需要额外提供一个XmlNamespaceManager实例,一看名字就知道,这个实例是用于管理Xml的Namespace的。再查看一下这个类

6、的成员:   可以发现,创建这个实例需要一个XmlNameTable,谁能提供这个XmlNameTable的实例哪?XmlDocument本身就提供了这个XmlNameTable:   这样,我们就可以修改为:   先创建一个Manager的实例,然后使用AddNamespace方法,把“v”设置为“urn:vwxyzh”的缩写。然后修改XPath,把data修改成v:data,item修改成v:item,就可以了,现在来看一下运行结果:    Yeah!这就是我们所需要的。·2用Dom的方式创建/修改xml   上一篇

7、讲了如何用dom的方式读一个xml,这一篇就讲一下如何用dom的方式去写一个xml。不过,用dom的写Xml本身并不是一个好主意,因为Dom方式本身的废话超多,做一个简单的事情就需要好几句语句,但是作为一个基本的方式还是有必要了解一下的。2.1用Dom的方式去创建xml   如果想写出这样一个xml:   那么你可能需要这样一大段代码:   分析一下,在dom方式下要创建任何一个xml的节点都必须要使用XmlDocument的对应的Create方法创建,然后再添加到对应的位置,这也就是Dom方式最麻烦的地方。   看看运

8、行结果:   这个xml和我们期望的xml是等价的,只是没有被格式好,好吧,想要一个格式化好的文档,那么就修改一下写xml的部分(在讲xmlwriter的时候还会讲到这个setting类):   再看看运行结果:   这样就和期望的xml一致了。2.2用Dom的方式去创建有namespace的xml   如果有nam

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。