开发者

Selecting multiple children using where clause in linq for xml

I have this bit of XML

<status complete="false">
  <messages>
    <message>Message 1</message>
    <message>Message 2</message>
    <message>Message 3</message>
  </messages>
</status>

which looks like this when there are no messages

<status complete="false"&g开发者_开发百科t;
  <messages/>
</status>

or could also look like this

<status complete="false">
  <messages>
    <message/>
  </messages>
</status>

I want to be able to parse the messages ("Message 1", "Message 2" and "Message 3") if they are available but I'm having some trouble and I'm only getting the first message. This is the bit of C# that I'm using:

var feeds = from feed in xmlDoc.Descendants("messages")
            where (feed.Element("message") != null)
            select new
            {
                Message = feed.Element("message").Value
            };

foreach (var feed in feeds)
{
    Debug.WriteLine("Found a message");
}

Could any .NET ninja please tell me what kind of noobie mistake I'm making. Any help will be greatly appreciated.

Cheers

Luis


Your query is too complex, try this:

var feeds = from feed in doc.Descendants("message")
select new
{
  Message = feed.Value
};


I think this will do the trick

var feeds = from feed in xmlDoc.Descendants("message")
            where feed.IsEmpty == false
            select feed;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜