从XML文件中读取单个节点到listBox(WP7,Silverlight,C#)

时间:2013-02-13 08:06:01

标签: c# xml silverlight windows-phone-7 linq-to-xml

我想从下面的URL中获取类似艺术家的名字,并将它们显示在listBox中。

http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&artist= ARTISTNAMEHERE &安培; API_KEY = ff1629a695c346cc4b2dd1c41fcd4054

到目前为止,除了其他人的问题,我已经阅读了XML文件:

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        WebClient wc = new WebClient();
        wc.DownloadStringCompleted += HttpCompleted;
        wc.DownloadStringAsync(new Uri("http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&artist=ARTISTNAMEHERE&api_key=ff1629a695c346cc4b2dd1c41fcd4054"));
    }

    private void HttpCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None);

            // do something with the XDocument here
        }
    }

正如我之前所说,我想从该页面获取艺术家名称,这是每个名称节点并在listBox中显示它们。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

这应该这样做:

        XElement artists = xdoc.Root.Element("similarartists");
        if (artists != null)
        {
            IEnumerable<string> names = artists
                .Elements("artist")
                .Select(el => el.Element("name").Value);
        }

它使用System.Xml.Linq命名空间中的方法,这些方法用于使用LINQ检索XML数据。