LINQ to XML 属性

LINQ to XML attributes

我正在创建一个简单的应用程序来下载 XML 并解析它。我对这些有疑问:

<image size="small">http://userserve-ak.last.fm/serve/34/101313093.jpg</image>
<image size="medium">http://userserve-ak.last.fm/serve/64/101313093.jpg</image>
<image size="large">http://userserve-ak.last.fm/serve/126/101313093.jpg</image>
<image size="extralarge">http://userserve-ak.last.fm/serve/252/101313093.jpg</image>

默认代码:

var data = from query in xdoc.Descendants("user")
           select new User
           {
               Image = (string)query.Element("image")
           };

它总是将 uri 下载到小图像,但我想下载大图像。 怎么做?

你可以这样做:

var result= xdoc.Descendants("image")
                .Where(x => x.Attribute("size").Value == "large")
                .Select(x => new User{ Image =  x.Value });

这里是Working Example Fiddle