柚子Nan--回归原点

Everything can be as easy as you like or as complex as you need.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

XMLReader的一点详细说明

Posted on 2004-04-15 16:33  柚子Nan  阅读(3341)  评论(0编辑  收藏  举报

前段时间看了一些XML相关的书籍,《XML轻松学习手册》,作者:阿捷/ eNet学院,《无废话XML》,

XML实用大全》,《xml高级编程》一直摸不着边界。很多都是介绍XML元素,DTD等等知识的,看了这么多书籍以后,总是感觉到如何进行编程呢?在上述这些书中,强烈推荐一本《XML轻松学习手册》,非常感谢阿捷的作品,对于XML入门简直是不可多得的好资料。目前,在看一本机械工业出版社的《Microsoft .net XML 程序设计》,感觉到终于有点边界了。

 

呵呵,感谢微软!

今天下午好好研究了一下XMlReader类,XmlReader是一个抽象类,不能够直接实例化进行读取。可以使用XmlTextReader,XmlValidatingReader,XmlNodeReader,有关于这三个类的区别请参考相关的资料。

 

下边看一个例子

XML文件如下:

<?xml version="1.0" encoding="utf-8" ?>

<employee>

       <hired>2009-5-2</hired>

       <salary>13000</salary>

</employee>

 

那么如何使用XMlTextReader分析这个文件呢?

XmlTextReader aXmlTextReader = new XmlTextReader(@"D:\AspNet\KoSmartWin\employee1.xml");

while(aXmlTextReader.Read())

{

       //read data

}

aXmlTextReader.Close();

 

下边看看上边这么一个简单的xml文件到底需要读取多少次?

如果你说1234总共4行,就读取4次了,呵呵,错了,事实胜于雄辩,看看结果吧!

次数

value

type

1

xml version="1.0" encoding="utf-8"

XmlDeclaration

2

\r\n

whiteSpace

3

""

Element

4

\r\n\t

whiteSpace

5

""

Element

6

2009-5-2

Text

7

"'

EndElement

8

\r\n\t

whiteSpace

9

""

Element

10

13000

Text

11

"'

EndElement

12

\r\n

whiteSpace

13

"'

EndElement

 

此外,aXmlTextReader还有一个属性LineNumbe,确实可以读到当前是第几行,还有LinePosition属性。