XML Linq新手问题

时间:2010-07-30 22:39:19

标签: c# xml linq

我正在处理类似这样的XML文件:

<lfm status="ok">
    <user>
       <name>JohnnyWestlake</name>
       <image size="large">http://someurl.com/large.jpg</image>
       <image size="extralarge">ttp://someurl.com/exlarge.jpg</image>
       ...
    </user>
</lfm>

我正在使用Linq将其添加到用户类中,如下所示:

        User user;

        user = (from lfmUser in userrequest.Descendants("user")
               select new User
               {
                   Name = lfmUser.Element("name").Value,
                   ImageM = lfmUser.Element("image").Value,
                   ...
               }).FirstOrDefault();

问题,如何将ImageM设置为image size =“extralarge”中包含的url,而不是image size =“large”?或者我应该采取另一种方式?

2 个答案:

答案 0 :(得分:3)

ImageM = lfmUser.Elements("image")
                .Where( e => e.Attribute( "size" ).Value == "extralarge" )

答案 1 :(得分:0)

试试这个:

var user = (from lfmUser in userrequest.Descendants("user")
    select new User
    {
        Name = lfmUser.Element("name").Value,
        ImageM = lfmUser.Descendants("image").Where(x=>x.Attribute("size").Value == "large").First().Value
    }).FirstOrDefault();