XDocument XElement.Descendants问题

时间:2012-08-01 14:03:45

标签: xml linq linq-to-xml xelement

我有一个简单的问题,但我不知道如何解决它。我有一个看起来像这样的XML文档

<hotel>
   <rooms>
   </rooms>
   <rates>
      <rooms>
      </rooms>
   </rates>
</hotel>

现在,在我的代码中,我有以下

XElement hotel = xDoc.Descendants("hotel").Single();
XElement rooms = hotel.Descendants("rooms").Single();

最后一行失败,因为有两个rooms个节点。我想要Descendants做的是给当前节点的立即后代,而不是每个后代,无论它在文档中的什么位置。这怎么可能?

谢谢,

萨钦

1 个答案:

答案 0 :(得分:1)

要获取rooms节点的第一个hotel子元素,请使用Element方法:

XElement rooms = hotel.Element("rooms");

此外,如果您真的使用XDocument,则hotel节点将成为根,并且可以使用xDoc.Root属性进行访问。