C#xml读取,显示错误

use*_*854 1 c# xml

我的代码有什么问题?

        XmlTextReader textReader = new XmlTextReader(@"D:\xml_file.xml");
        textReader.Read();

        // If the node has value

        while (textReader.Read())
        {
            // Move to fist element

            textReader.MoveToElement();
            Console.WriteLine("XmlTextReader Properties Test");
            Console.WriteLine("===================");
            // Read this element's properties and display them on console
            Console.WriteLine("id:" + textReader.id.ToString());
            Console.WriteLine("name:" + textReader.name.ToString());
            Console.WriteLine("time:" + textReader.time.ToString());
        }
        Console.ReadLine()
Run Code Online (Sandbox Code Playgroud)

显示erron:id,name,time

我的XML文件:

<students>
 <student>
  <id>1</id>
  <name>Rikko Nora</name>
  <time>2010-03-12</time>
 </student>
 <student>
  <id>2</id>
  <name>Rikko Nora2</name>
  <time>2010-05-15</time>
 </student>
</students>
Run Code Online (Sandbox Code Playgroud)

cas*_*One 6

XmlTextReader不会使自己适应您正在阅读的XML的形状.您获得的编译错误在于以下几行:

Console.WriteLine("id:" + textReader.id.ToString());
Console.WriteLine("name:" + textReader.name.ToString());
Console.WriteLine("time:" + textReader.time.ToString());
Run Code Online (Sandbox Code Playgroud)

XmlTextReader类没有id,name和time属性.

相反,当您使用XmlTextReader时,在移动到节点后,您将需要使用ReadContentAs {ContentType}方法将元素内容作为特定类型实例读取.

如果您希望从XML中读取对象表示,那么您可能需要查看.NET Framework中的XML序列化.