如何在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,那么正确的方法是什么?
答案 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");