2010-05-18 40 views
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() 

展上erron:ID,姓名,时间

我的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> 
+0

什么是错误? – Rbacarin 2010-05-18 18:49:21

回答

6

的XmlTextReader的本身并不适应,你正在阅读的XML的形状。编译错误,你得到的谎言与这些线:

Console.WriteLine("id:" + textReader.id.ToString()); 
Console.WriteLine("name:" + textReader.name.ToString()); 
Console.WriteLine("time:" + textReader.time.ToString()); 

XmlTextReader类不具备标识,名称和时间属性。

而是,当您使用XmlTextReader时,在移动到节点后,您将希望使用ReadContentAs{ContentType} methods将元素内容作为特定类型实例读取。

如果您正在寻找从XML读取对象表示,那么你可能想看看XML Serialization in the .NET Framework

1

尝试使用新的XDocument类来加载XML并在其上运行Linq查询。