1

私が取り組んでいるプロジェクトの一環として、この XML ページ ( http://weather.yahooapis.com/forecastrss?w=2459115 ) を Windows Phone 8 アプリケーションにロードし、値の数を変数として保存しようとしています。 .

Visual Studio 2012 Professional と VB.net を使用しています。

これまでのところ、最初に1つの変数を保存しようとするだけで多くの方法を検索して試しましたが、それを読み取ることができません。

これは私がこれまでに持っているものです

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

私のコードは、この行でnull値の例外を見つけ続けます

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

1 に答える 1

1

Elementlanguage現在の要素の直接の子のみを検索するため、単純に要素を取得することはできません。

それを試してください:

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

またはDescendants方法を使用して:

lang = resultElements.Descendants("language").First().Value
于 2013-04-13T14:09:06.093 に答える