2017-09-03 234 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