C# LINQ到XML:选择特定节点值

C# LINQ到XML:选择特定节点值,c#,linq-to-xml,C#,Linq To Xml,我试图使用XMLDocument阅读下面的xml,但没有获得任何成功。我想读取所有子节点 其父节点具有特定密钥。像下面的例子一样,我只想读取父节点具有属性“softdrink”的所有子节点。 我不能使用xpath <root> <food> <drink key="Softdrink"> <coke>$12.50</coke> <lemonade>$12.80</lemonade&g

我试图使用XMLDocument阅读下面的xml,但没有获得任何成功。我想读取所有子节点 其父节点具有特定密钥。像下面的例子一样,我只想读取父节点具有属性“softdrink”的所有子节点。 我不能使用xpath

<root>
  <food>
    <drink key="Softdrink">
      <coke>$12.50</coke>
      <lemonade>$12.80</lemonade>
      <beer>$19.40</beer>
    </drink>
    <drink key="hotdrink">
      <tea>$11.19</tea>
      <soup>$18.22</soup>
    </drink>
  </food>
</root>

$12.50
$12.80
$19.40
$11.19
$18.22

像这样的东西怎么样:

IEnumerable<XElement> softDrinks=
    from item in menu.Descendants("Drink")
    where item.Attribute("key") == "SoftDrink" 
    select item;
i数不清的软饮料=
从菜单中的项(“饮料”)
其中item.Attribute(“key”)=“软饮料”
选择项目;

EDIT我已经有一段时间没有对Xml使用Linq了,但我认为如果你看@它会有很大的帮助。

你需要避开Xml,这样我们才能看到它只是好奇:你不能使用XPath有什么特别的原因吗?