Linq to XML spotify parsing

本文关键字:parsing spotify XML to Linq | 更新日期: 2023-09-27 18:35:22

我正在尝试从spotify读取以下xml文件:http://ws.spotify.com/search/1/track?q=sail+awolnation

我想获取集合中的所有曲目,我一直在尝试使用 Linq 到 XML,但到目前为止还没有成功,我找到的所有示例都以与我完全相同的方式进行,但由于某种原因它没有为我填充列表,我一无所知。

这是我目前使用的代码:

        XDocument xdoc = XDocument.Parse(xml);
        XNamespace ns = XNamespace.Get("http://www.spotify.com/ns/music/1");
        var tracks =  from track in xdoc.Descendants(ns + "track")
                    select new
                    {
                        Name = track.Element(ns + "name").Value,
                    };

Linq to XML spotify parsing

WebClient wb = new WebClient();
var xdoc = XDocument.Parse(wb.DownloadString("http://ws.spotify.com/search/1/track?q=sail+awolnation"));
XNamespace ns = XNamespace.Get("http://www.spotify.com/ns/music/1");
var tracks = from track in xdoc.Root.Elements(ns + "track") 
     select 
       new 
        { 
           Name = track.Element(ns + "name").Value 
        };
string s = "";

这段代码对我工作正常

我认为您在命名空间方面遇到了问题。

我个人会像这样获取命名空间

XDocument xDoc = XDocument.Load("http://ws.spotify.com/search/1/track?q=sail+awolnation");
XNamespace ns = xDoc.Document.Root.GetDefaultNamespace();

这确保了如果命名空间确实发生了变化(通过 Spotify),那么您的程序将自动处理它,您不必更改代码并重新编译以使其与新代码一起使用。