【发布时间】:2014-08-16 16:11:30
【问题描述】:
是否可以使用where 检查根内的多个元素?我有一个 XML 表设置,其中有多个具有相同名称的元素(但只是有时),如下所示:
<person>
<name>Joe</name>
<food>orange</food>
<food>apple</food>
</person>
<person>
<name>Roger</name>
<food>apple</food>
</person>
我希望能够检查一个人是否有特定类型的食物,然后将它们输出到控制台。使用此方法从 XML 表单中获取它们:
var query = from c in xml.Root.Descendants("person")
where (string)c.Element("food") == "apple"
select new c.Element("food").Value;
它只会将 Roger 添加到查询中。我相信这是因为苹果排在第二位,因为当我将它切换到列表中的第一位时,我让乔出现。有没有办法检查第二个元素是否也满足 where 语句?
【问题讨论】:
-
where (string)c.Element("food") == "apple"只检查与 food 匹配的第一个元素。 -
除了第一个元素外,我如何检查与食物匹配的第二个元素?
-
用
...your xml.... 之类的根目录括起该 xml -
我把它漏掉了,不过它又被附上了。
标签: c# linq-to-xml