按名称检索 XDocument 的元素

发布于 2024-10-14 20:08:41 字数 84 浏览 3 评论 0原文

我有一个 XML 文档。我想检索根节点的特定后代节点。根节点没有命名空间,但是子节点有命名空间,尽管它们都是相同的。将此元素作为元素检索的最佳方法是什么?

I have an XML document. I want to retrieve a specific descendant node of the root node. The root node does not have a namespace, however, the children nodes do, although they are all the same. What is the best way to retrieve this element as an element?

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

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

发布评论

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

评论(2

枕头说它不想醒 2024-10-21 20:08:41

根节点的命名空间并不重要。

你可以只写

XNamespace ns = "http://...";
var elem = doc.Element(ns + "TagName");

The namespace of the root node doesn't matter.

You can just write

XNamespace ns = "http://...";
var elem = doc.Element(ns + "TagName");
转瞬即逝 2024-10-21 20:08:41

如果您不知道子级的命名空间,可以通过 LocalName,指名称的本地(非限定)部分。

string name = "purchase";
var query = xml.Descendants()
               .Where(e => e.Name.LocalName == name);

这将返回一个 IEnumerable。从那里您可以循环它或使用 SingleOrDefault 如果您期望只存在一个。

If you don't know the namespace of the children you could match them by LocalName, which refers to the local (unqualified) part of the name.

string name = "purchase";
var query = xml.Descendants()
               .Where(e => e.Name.LocalName == name);

This returns an IEnumerable<XElement>. From there you can loop over it or use SingleOrDefault if you expect only one to exist.

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