LINQ to XML选择多个元素?

时间:2011-01-26 10:41:53

标签: linq-to-xml

如何在LINQ to XML查询中选择多个元素(具有不同的名称)?

我有这样的查询:

var elems = from descendant in doc.Descendants("foo")
                            select descendant;

但我想选择foo和bar,有点像这样:

var elems = from descendant in doc.Descendants("foo" || "bar")
                            select descendant;

但这只是为了说明我想做什么,我知道这不是正确的语法。我不知道应该如何使用LINQ to XML,那么正确的方法是什么?

2 个答案:

答案 0 :(得分:7)

您只能将一个XName传入这些方法。只需将它们留在那里并进行正常的LINQ过滤。

var elems = doc.Descendants()
               .Where(desc => desc.Name == "foo" || desc.Name == "bar");

使用XPath是另一种方式。

var elems = doc.XPathSelectElements("//foo|//bar");

答案 1 :(得分:4)

嗯,一个选择:

var elems = doc.Descendants().Where(x => x.Name == (XName) "foo" ||
                                         x.Name == (XName) "bar");