我有一个xml(称为xdoc)文件,如下所示:
<Root>
<ItemContainer>
<Item>
<Item>
<Item>
<Item>
</ItemContainer>
</Root>
如果我执行以下操作
XElement xel = xdoc.Element("ItemContainer");
据我所知,我应该回到对ItemContainer节点元素的引用,但我一直回到null。我已经阅读了这个
的msdn文档“获取具有指定的第一个(按文档顺序)子元素 XName的。 “
据我所知,ItemContainer是第一个具有指定名称的子元素。我错过了什么?
答案 0 :(得分:4)
做:
XElement xel = xdoc.Root.Element("ItemContainer");
因为,<Root>
也必须处理。
XElement xel = xdoc.Element("Root").Element("ItemContainer");
也应该有用
答案 1 :(得分:1)
我认为xdoc
的类型为XDocument
。文档的唯一子元素是根节点<Root>
因此,您的代码应如下所示:
XElement xel = xdoc.Root.Element("ItemContainer");
答案 2 :(得分:1)
你试过......
xdoc.Root.Element("ItemContainer");
根元素是第一个元素
答案 3 :(得分:1)
正如其他人所解释的那样,XDocument
的唯一孩子是根元素,所以要找到根的孩子,你必须通过根:
XElement xel = xdoc.Root.Element("ItemContainer");
或者,如果您不需要访问XML声明等内容,则可以使用XElement.Load()
。它直接返回根元素:
XElement root = XElement.Load(@"c:\projects\gen\test_xml.xml");
XElement xel = root.Element("ItemContainer");