我有这点XML
<status complete="false">
<messages>
<message>Message 1</message>
<message>Message 2</message>
<message>Message 3</message>
</messages>
</status>
在没有消息的情况下看起来像这样
<status complete="false">
<messages/>
</status>
或者也可能看起来像这样
<status complete="false">
<messages>
<message/>
</messages>
</status>
我希望能够解析消息(“消息1”,“消息2”和“消息3”),如果它们可用但是我遇到了一些麻烦,我只收到第一条消息。这是我正在使用的C#:
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");
}
任何.NET忍者都可以告诉我我正在犯的是什么样的noobie错误。任何帮助将不胜感激。
干杯
路易斯
答案 0 :(得分:1)
我认为这会解决问题
var feeds = from feed in xmlDoc.Descendants("message")
where feed.IsEmpty == false
select feed;
答案 1 :(得分:1)
您的查询过于复杂,请尝试以下操作:
var feeds = from feed in doc.Descendants("message")
select new
{
Message = feed.Value
};