对非空对象的XDocument null引用



我有一个xml(称为xdoc)文件,如下所示:

<Root>
<ItemContainer>
<Item>
<Item>
<Item>
<Item>
</ItemContainer>
</Root>

如果我执行以下操作

XElement xel = xdoc.Element("ItemContainer");

据我所知,我应该得到一个引用到我的ItemContainer节点元素,但我不断返回null。我已经阅读了msdn文档

"获取具有指定元素的第一个(按文档顺序)子元素XName。"

据我所知,ItemContainer是具有指定名称的第一个子元素。我错过了什么?

Do:

XElement xel = xdoc.Root.Element("ItemContainer");

因为,<Root>也要处理。

XElement xel = xdoc.Element("Root").Element("ItemContainer");

也可以

我假设xdocXDocument类型。文档的唯一子元素是根节点<Root>
因此,您的代码应该像这样:

XElement xel = xdoc.Root.Element("ItemContainer");

你试过吗?

xdoc.Root.Element("ItemContainer");

根元素是第一个元素

正如其他人解释的那样,XDocument的唯一子元素是根元素,因此要访问根元素的子元素,必须通过根元素:

XElement xel = xdoc.Root.Element("ItemContainer");
如果不需要访问XML声明之类的内容,也可以使用XElement.Load()。它直接返回根元素:
XElement root = XElement.Load(@"c:projectsgentest_xml.xml");
XElement xel = root.Element("ItemContainer");

最新更新