我有一个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");
也可以
我假设xdoc
为XDocument
类型。文档的唯一子元素是根节点<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");