c# - Linq to XML 未获取所有节点

标签 c# xml linq linq-to-xml

<?xml version="1.0" encoding="utf-8"?>
<OrdersReport Date="2012-08-01">
<Returns>
      <Amount>
        <OrderId>2</OrderId>
        <OrderId>3</OrderId>
        <OrderId>21</OrderId>
        <OrderId>23</OrderId>
      </Amount>
    </Returns>
</OrdersReport>

这是我试图获取 OrderId 的代码:

 var amount = doc.Descendants("Amount")                         
  .Select(y => new
  {
   OrderId = (int)y.Element("OrderId")
   });
foreach (var r in amount)
  {
   Console.WriteLine(r.OrderId);
  }

 Console.Read();

我的输出是:

2
2

最佳答案

你可以这样做:

var orderIds = doc.Descendants("OrderId");
foreach (var orderId in orderIds)
{
    Console.WriteLine(orderId.Value);
}

或者,在这种情况下是相同的:

var orders = doc.Descendants("Amount")
                .Descendants("OrderId");

关于c# - Linq to XML 未获取所有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13227217/

相关文章:

c# - 删除数组中的最后一个元素,插入新元素

java - Hibernate 5 是否支持基于 XML 的实体映射?

java - 正则表达式修改xpath表达式

python - 使用 Python 将复杂的 XML 解析为 CSV

c# - 假人的表达树?

c# - LINQ - 拆分具有最大长度的字符串,但不将单词分开

c# - AndroidGameWindow.SetDisplayOrientation NullReferenceException

c# - 在 asp.net 中使用 sqldatasource 时出现 mysql sntax 错误

c# - 一次将对象从List <T>中拉出多个ID?

linq - 按 "string"名称订购 LINQ