0;第一行的回车换行符号,元素类型是Whitespace,根节点前的空白,深度是0;
0;<People>,元素类型是Element,根节点,深度是0;
1;<Person>前的空白字符,元素类型是Whitespace,和Persion深度一样,所以深度是1;
1;<Person>,元素类型是Element,根节点的子节点,深度是1;
2;<Name>前的空白字符,元素类型是Whitespace,深度是2;
2;<Name>,元素类型是Element,根节点的子节点的子节点,深度是2;
3;空白 张三 空白,元素类型是Text,是<Name>的文本内容,深度是3;
2;</Name>,元素类型是EndElement,和<Name>一样深度是2;
2;<Address>前的空白字符,深度是2;
2;<Address>,元素类型是Element,根节点的子节点的子节点,深度是2;
3;空白 北京 空白,元素类型是Text,深度是3;
2;</Address>,元素类型是EndElement,和<Address>一样,深度是2;
2;<Job>前的空白字符,深度是2;
2;<Job>,元素类型是Element,根节点的子节点的子节点,深度是2;
3;空白 司机 空白,元素类型是Text,深度是3;
2;</Job>,元素类型是EndElement,和<Job>一样,深度是2;
2;</Job>后的空白字符,深度是2;
1;</Person>,深度是1;
1;</Person>后的空白字符,深度是1;
0;</People>,深度是0;
0;</People>后的空白字符,深度是0;
21:共有21个元素;

解决方案 »

  1.   

    String str = "";
    XmlTextReader td = new XmlTextReader ("test.xml");
    int intCount=0;
    td.Read ();
    while(td.Read ())
    {
    intCount++;
    str += td.Depth .ToString ()+";";
    Console.WriteLine(td.NodeType);switch (td.NodeType) {
                 case XmlNodeType.Element:
                   Console.Write("<{0}>", td.Name);
                   break;
                 case XmlNodeType.Text:
                   Console.Write(td.Value);
                   break;
                 case XmlNodeType.CDATA:
                   Console.Write("<![CDATA[{0}]]>", td.Value);
                   break;
                 case XmlNodeType.ProcessingInstruction:
                   Console.Write("<?{0} {1}?>", td.Name, td.Value);
                   break;
                 case XmlNodeType.Comment:
                   Console.Write("<!--{0}-->", td.Value);
                   break;
                 case XmlNodeType.XmlDeclaration:
                   Console.Write("<?xml version='1.0'?>");
                   break;
                 case XmlNodeType.Document:
                   break;
                 case XmlNodeType.DocumentType:
                   Console.Write("<!DOCTYPE {0} [{1}]", td.Name, td.Value);
                   break;
                 case XmlNodeType.EntityReference:
                   Console.Write(td.Name);
                   break;
                 case XmlNodeType.EndElement:
                   Console.Write("</{0}>", td.Name);
                   break;
               }
    }
    str += intCount.ToString ();
    td.Close ();
    Console.WriteLine(str);
    }