LINQ to XML 选择多个元素?

发布于 2024-10-14 01:04:08 字数 527 浏览 5 评论 0原文

如何在 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 来完成它,那么正确的方法是什么?

How do I select multiple elements (with different names) in a LINQ to XML query?

I have a query like this:

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

But I want to select both foo and bar, sort of like this:

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

But that is just to illustrate what I want to do, I know this is not correct syntax. I don't know how it should be done with LINQ to XML, so what is the proper way to do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱给你人给你 2024-10-21 01:04:09

好吧,一种选择:

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

Well, one option:

var elems = doc.Descendants().Where(x => x.Name == (XName) "foo" ||
                                         x.Name == (XName) "bar");
唱一曲作罢 2024-10-21 01:04:08

您只能将一个 XName 传递到这些方法中。只需将它们留在那里并执行正常的 LINQ 过滤即可。

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

使用 XPath 是另一种方法。

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

You can only pass in one XName into those methods. Just leave them out there and do normal LINQ filtering.

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

Using an XPath is another way.

var elems = doc.XPathSelectElements("//foo|//bar");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文