从Web上的XML文件中获取价值

时间:2012-05-19 14:40:23

标签: c# xml windows-phone-7 xml-parsing

从网络上的xml获取日出时间和日落时间。 这是xml的链接:

http://www.yr.no/sted/Norge/Oslo/Oslo/Blindern/varsel.xml

我试图使用以下信息: http://www.jeffblankenburg.com/2010/10/25/31-days-of-windows-phone-day-25-talking-to-external-apis/

我试图通过执行此操作将其信息更改为我的信息,但仅获取NullReferenceException:

private void GoButton_Click(object sender, RoutedEventArgs e)
{
    if (NetworkInterface.GetIsNetworkAvailable())
    {
        WebClient twitter = new WebClient();

        twitter.DownloadStringCompleted += new DownloadStringCompletedEventHandler(twitter_DownloadStringCompleted);
        twitter.DownloadStringAsync(new Uri("http://www.yr.no/sted/Norge/Oslo/Oslo/Blindern/varsel.xml"));
    }
}

void twitter_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    if (e.Error != null) return;

    XElement xmlTweets = XElement.Parse(e.Result);

    string name = xmlTweets.Element("weatherdata").Element("location").Element("country").Value;
    TwitterName.Text = name;

}

这是来自网络的xml文件的剪辑。这是相当大的,但我只需要太阳落山的时间和太阳升起的时间..请帮助。

<weatherdata>
<location>
<name>Blindern</name>
<type>Byområde</type>
<country>Norge</country>
<timezone id="Europe/Oslo" utcoffsetMinutes="120"/>
<location altitude="90" latitude="59.9406284402542" longitude="10.7230684724138" geobase="ssr" geobaseid="73738"/>
</location>
<credit>...</credit>
<links>...</links>
<meta>...</meta>
<sun rise="2012-05-19T04:30:13" set="2012-05-19T21:58:34"/>
<forecast>...</forecast>
<observations>...</observations>
</weatherdata>

1 个答案:

答案 0 :(得分:1)

该元素已经在<weatherdata>节点,因此您无需再次查询它。

string name = xmlTweets.Element("location").Element("country").Value; 
TwitterName.Text = name;