LINQ-to-XML:选择特定节点值

时间:2009-09-16 08:19:06

标签: c# linq-to-xml

<PKT>
   <Result Name="GetBalance" Success="1">
      <Returnset>
         <Balance Type="int" Value="0" />
      </Returnset>
   </Result>
</PKT>

使用LINQ-to-XML获取Balance的值的最佳方法是什么?

3 个答案:

答案 0 :(得分:3)

var values = from e in XDocument.Load("MyFile.xml").Descendants("Balance")
             select e.Attribute("Value").Value;

foreach (var e in values)
{
    Console.WriteLine(e);
}

答案 1 :(得分:2)

XDocument doc = XDocument.Load("MyFile.xml");
IEnumerable<XElement> elements = doc.Descendants("Balance");

foreach (XElement e in elements)
{
    Console.Write(e.Attribute("Value").Value);
}

你可以这样做。 我在这里直接键入代码,您可能想要确认任何拼写错误。

答案 2 :(得分:0)

如果您只希望获得第一次出现Balance的值,则可以这样做。

var balance = (from n in XDocument.Load("MyFile.xml").Descendents("Balance")
               select n.Attributes("Value").Value).ToList().First();