2024年4月8日发(作者:)
Xml作为一个非常重要的纯文本格式已经进入了编程的很多领域,作为一个面向应
用层面的c#也一样在很多领域离不开Xml。
但是,c#在很多方面对Xml做了写封装,以至于很多操作Xml的代码,都不需要手动去
写。例如,c#写WebService这种需要大量操作Xml的服务,除了极其个别的情况下,基本
看不到任何操作Xml的代码。这是c#的一个优势,但是,最近发现正是这样一些c#的优势,
导致了新一代c#程序员的能力退化。因为90%的情况下,不需要手动操作Xml,所以,年
轻的c#程序员也觉得没必要为了这10%的情况,而去学如何手工读写Xml。真不知道,ms
提供了这么简便的工具,是ms做的善事还是作的孽。。。
好吧,废话就不说了,转入主题。
1.如何用Xml Dom的方式读取Xml
Xml Dom方式是最原始的一种操作Xml的途径,从.net Framework 1.0开始就开始支持
Dom方式。
1.1如何以Dom方式加载Xml
要读取Xml首先要加载Xml,加载的方式有两种,一种是从流或类似的Reader加载,例
如:
当然还可以从字符串加载:
1.1读取无namespace的Xml
Xml已经准备好了,下面就开始读取这个Xml。现在希望读取data节下面的所有item中
的text,那么就可以:
看看运行结果:
但是,这样写的问题有很多,例如在data节点中有非item的节点,这样访问,也就被
无差别的把非item项也写出来了。例如把如果数据改成这样:
这样,在data节里面,除了4个item,还有一个other,这个other是不需要的,必须
被排除掉,如果直接用第一中ChildNodes去访问的话,会得到这样的结果:
显然“!@#”也被选择出来了,这可不是我们所期望的,
所以,改用XPath的方式访问:


发布评论