2012-04-19 51 views
0

我想知道如何使用linq检索XML,看起来完全一样?在XML中检索只有一个Int

<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">20</int> 

我应该使用linq吗?我不知道这个热门的号码..

这是我尝试使用的代码,我stucj后选择..有人可以帮助我吗?

public void wc_DownloadTopFolder(object sender, DownloadStringCompletedEventArgs e) 
    { 
     if (e.Error == null) 
     { 
      try 
      { 
       // Retrieving the Top Folders 
       XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None); 
       int i = from query in xdoc.Descendants("int") 
         select new int 
          { 

          }; 
      } 
+2

你在这一行只是有兴趣更大的XML文件,或者那是你的xml文件的全部内容? – R0MANARMY 2012-04-19 13:41:03

回答

2

您可以使用此:如果你不知道返回的值是一个数字

var number = int.Parse(xdoc.Root.Value); 

,你应该这样做:

int number; 
if(int.TryParse(xdoc.Root.Value, out number)) 
{ 
    // you got a number 
} 
+0

可能应该总是使用第二个,因为你真的不能保证它是一个数字。 – Robaticus 2012-04-19 14:04:07

+0

@Robaticus:如果它总是应该是一个数字,我会使用第一个数字,因为它不是数字的情况是*例外*,所以可以抛出异常。 – 2012-04-19 15:00:41

+0

我同意这是一个特殊情况,当然会考虑将它包装在异常处理程序中。唯一需要注意的是他在最终用户设备上,并且考虑到异常昂贵的特性,用户可能会通过第二种方法处理这种情况的可能性较小。最终,它可能成为一个偏好问题。 – Robaticus 2012-04-19 17:31:05