2017-09-03 192 views
-2

我正在尝试使用xml阅读器来阅读包含xml的url。我收到一个错误,说这些字符串为空XML阅读器没有正确阅读

 public void readEyeData() 
     { 
      XmlTextReader reader = new XmlTextReader(ExamInfo.eyeURL); 

      while (reader.Read() && !(reader.NodeType == XmlNodeType.EndElement && reader.Name == "point")) 
      { 
       if (reader.NodeType == XmlNodeType.Element) 
       { 
        switch (reader.Name) 
        { 
         case "point": 
          var xString = reader.GetAttribute("x"); 
          var yString = reader.GetAttribute("y"); 

          float x = Int32.Parse(xString); 
          float y = Int32.Parse(yString); 
          view.EyeMove(x, y); 
          break; 
        } 
       } 
      } 
} 

而这是xml的一个示例。林不知道我是否正确使用阅读器

<studentMovements> 
<eyeCoordinates> 
<point> 
<x>533</x> 
<y>521</y> 
<ts>522332022.281823</ts> 
</point> 
<point> 
<x>538</x> 
<y>521</y> 
<ts>522332029.325239</ts> 
</point> 
<point> 
<x>592</x> 
<y>529</y> 
<ts>522332058.340718</ts> 
</point> 

请帮忙谢谢!

+0

再次阅读邮件的例子。这对你来说意味着什么? '远程服务器返回错误:(404)未找到。 ' –

+0

啊好吧,所以我修复了这个url,但是现在当我试图解析字符串时,我又遇到了另一个异常。他们现在是空的,读者也是对的? – user8370201

+0

Google for'linq to xml' –

回答

0

下面是打印每个point

foreach (var point in XDocument.Parse(xml).Descendants("point")) 
{ 
    var x = Int32.Parse(point.Element("x").Value); 
    var y = Int32.Parse(point.Element("y").Value); 
    Console.WriteLine("({0}, {1})", x, y); 
} 

见小提琴在https://dotnetfiddle.net/Yek62r