XmlTextReader的节点读取方式

XmlTextReader的节点读取方式比较特别,下面举例:
<? xml version="1.0" encoding="utf-8"  ?>  
< EmpRecordsData >
    
< Ecode  Id ="E0001"  EmployeeName ="Michael Perry" >
        
< EmpDetails  DateofJoin ="02-02-1999"  Grade ="A"  salary ="1750" />
    
</ Ecode >
    
< Ecode  Id ="E0002"  EmployeeName ="Jenifer Carell" >
        
< EmpDetails  DateofJoin ="03-22-1999"  Grade ="B"  salary ="2500" />
    
</ Ecode >
</ EmpRecordsData >

输出结果为:
第n次调用XmlTextReader.Reader()的次数 + XmlTextReader.Name + XmlTextReader.NodeType

输出处理程序:
            XmlTextReader myReader  =   new  XmlTextReader( " E:\\MyFiles\\C#\\Employee Records System\\Employee Records System\\EmpRec.xml " );

            
int  i;
            
string  str  =   "" ;
            
for  (i = 1 ! myReader.EOF; i ++ )
            
{
                myReader.Read();
                str 
+= "" + i + "次Read,节点Name:" + myReader.Name + ",节点类型:" + myReader.NodeType + "\r";
            }

                
            StreamWriter sw 
=   new  StreamWriter( " D:\\test.txt " false , System.Text.Encoding.GetEncoding( " gb2312 " ));
            sw.Write(str);
            sw.Close();


输出结果:
第1次Read,节点Name:xml,节点类型:XmlDeclaration
第2次Read,节点Name:,节点类型:Whitespace
第3次Read,节点Name:EmpRecordsData,节点类型:Element
第4次Read,节点Name:,节点类型:Whitespace
第5次Read,节点Name:Ecode,节点类型:Element
第6次Read,节点Name:,节点类型:Whitespace
第7次Read,节点Name:EmpDetails,节点类型:Element
第8次Read,节点Name:,节点类型:Whitespace
第9次Read,节点Name:Ecode,节点类型:EndElement
第10次Read,节点Name:,节点类型:Whitespace
第11次Read,节点Name:Ecode,节点类型:Element
第12次Read,节点Name:,节点类型:Whitespace
第13次Read,节点Name:EmpDetails,节点类型:Element
第14次Read,节点Name:,节点类型:Whitespace
第15次Read,节点Name:Ecode,节点类型:EndElement
第16次Read,节点Name:,节点类型:Whitespace
第17次Read,节点Name:EmpRecordsData,节点类型:EndElement
第18次Read,节点Name:,节点类型:None


这说明,他是按下面读取的:
比如有一个元素:
<city>Shenzhen</city>
上面它会理解为3个节点;即使节点中没有内容也同样如此.
而且不仅如此,如上面程序反映,所有元素之间的空白处都同样理解为节点,比如
<city>Shenzhen</city>
<city>Hainan</city>
这里的第一个</city>与第二个<city>之间, 同样理解为一个空白节点.


上面只是了解以下.NET此类处理节点的方式,在程序中为了避免出错最好还是用
循环+判断节点Name和NodeType来判断.
 

你可能感兴趣的:(reader)