前段时间看了一些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>
<salary>13000</salary>
</employee>
那么如何使用XMlTextReader分析这个文件呢?
XmlTextReader aXmlTextReader = new XmlTextReader(@"D:\AspNet\KoSmartWin\employee1.xml");
while(aXmlTextReader.Read())
{
//read data
}
aXmlTextReader.Close();
下边看看上边这么一个简单的xml文件到底需要读取多少次?
如果你说1,2,3,4总共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 |
|
Text |
7 |
"' |
EndElement |
8 |
\r\n\t |
whiteSpace |
9 |
"" |
Element |
10 |
13000 |
Text |
11 |
"' |
EndElement |
12 |
\r\n |
whiteSpace |
13 |
"' |
EndElement |
此外,aXmlTextReader还有一个属性LineNumbe,确实可以读到当前是第几行,还有LinePosition属性。