2013-04-13 53 views
1

作为一个项目的一部分,我正在尝试将这个XML页面(http://weather.yahooapis.com/forecastrss?w=2459115)加载到我的Windows Phone 8应用程序中,并将一些值保存为变量。Windows Phone 8:从网上读取XML

我正在使用Visual Studio 2012专业版和VB.net。

到目前为止,我已经搜索并尝试了一些方法,只是试图保存一个变量开始,但我无法让它读取。

这是我迄今为止

Partial Public Class MainPage 
Inherits PhoneApplicationPage 
Private XMLHANDLE As WebClient 

Dim lang As String 

Public Sub New() 
    InitializeComponent() 

    SupportedOrientations = SupportedPageOrientation.Portrait Or SupportedPageOrientation.Landscape 


    Dim XML As String = "http://weather.yahooapis.com/forecastrss?w=2459115" 
    XMLHANDLE = New WebClient() 
    XMLHANDLE.DownloadStringAsync(New Uri(XML)) 

    AddHandler XMLHANDLE.DownloadStringCompleted, AddressOf XMLHANDLE_DownloadStringCompleted 
    AddHandler XMLHANDLE.DownloadProgressChanged, AddressOf XMLHANDLE_DownloadProgressChanged 
End Sub 


Private Sub XMLHANDLE_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) 

End Sub 


Private Sub XMLHANDLE_DownloadStringCompleted(sender As Object, e As DownloadStringCompletedEventArgs) 
    If e.[Error] Is Nothing AndAlso Not e.Cancelled Then 
     Dim resultElements As XElement = XElement.Parse(e.Result) 


     lang = resultElements.Element("language").Value 
     Console.WriteLine(lang) 
    End If 

End Sub 

我的代码保持在这条线

lang = resultElements.Element("language").Value 

回答

1

Element看起来只有在当前元素的直接孩子找到一个空值异常,所以你可以” t得到language这个简单的元素。

试一下:

lang = resultElements.Element("channel").Element("language").Value 

或者用Descendants方法:

lang = resultElements.Descendants("language").First().Value 
+0

谢谢!我不知道,只是让我的头绕着XML感谢快速回答,不会让我标记为答案,但生病时尽快它让我! –

+0

只是另一个问题说我想从这个我将如何去解决这个城市的价值? –