我需要xml节点 201和201的值。

我尝试使用以下代码获取此值:

C#

var attrArr = (_doc.Root.Descendants("Раздел2РасчетПоТарифуДопТарифу")
    .Where(i => i.Descendants("КодСтроки").FirstOrDefault().Value == "201")
    .Select(i => i.Descendants("СуммаВсегоСначалаРасчетногоПериода").FirstOrDefault().Value))
    .FirstOrDefault();


但是我只得到第一个值(201)。

如果输入i => i.Descendants("КодСтроки").FirstOrDefault().Value == "202",则值= 0

XML格式

<Раздел2РасчетПоТарифуДопТарифу>
        <Раздел2_1_РасчетСВпоТарифу>
          <КодТарифа>03</КодТарифа>
          <НаОбязательноеПенсионноеСтрахование>
            <ВыплатыИвознаграждения_1966старше>
              <КодСтроки>201</КодСтроки>
              <РасчетСумм>
                <СуммаВсегоСначалаРасчетногоПериода>201</СуммаВсегоСначалаРасчетногоПериода>
                <СуммаПоследние1месяц>0.00</СуммаПоследние1месяц>
                <СуммаПоследние2месяц>0.00</СуммаПоследние2месяц>
                <СуммаПоследние3месяц>0.00</СуммаПоследние3месяц>
              </РасчетСумм>
            </ВыплатыИвознаграждения_1966старше>
            <ВыплатыИвознаграждения_1967моложе>
              <КодСтроки>202</КодСтроки>
              <РасчетСумм>
                <СуммаВсегоСначалаРасчетногоПериода>202</СуммаВсегоСначалаРасчетногоПериода>
                <СуммаПоследние1месяц>0.00</СуммаПоследние1месяц>
                <СуммаПоследние2месяц>0.00</СуммаПоследние2месяц>
                <СуммаПоследние3месяц>0.00</СуммаПоследние3месяц>
              </РасчетСумм>
            </ВыплатыИвознаграждения_1967моложе>
            <ВыплатыИвознаграждения_ВременноИГ>
              <КодСтроки>203</КодСтроки>
              <РасчетСумм>
                <СуммаВсегоСначалаРасчетногоПериода>203</СуммаВсегоСначалаРасчетногоПериода>
                <СуммаПоследние1месяц>0.00</СуммаПоследние1месяц>
                <СуммаПоследние2месяц>0.00</СуммаПоследние2месяц>
                <СуммаПоследние3месяц>0.00</СуммаПоследние3месяц>
              </РасчетСумм>




我需要取值201、202和203

最佳答案

尝试:

var attrArr = (_doc.Root.Descendants("Раздел2РасчетПоТарифуДопТарифу")
.Where(i => i.Descendants("КодСтроки").FirstOrDefault(x => x.Value == "202"))
.Select(i => i.Descendants("СуммаВсегоСначалаРасчетногоПериода").FirstOrDefault().Value)).FirstOrDefault();

关于c# - 如何使用linq将数据从xml提取到xml,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28367741/

10-09 03:10