我需要获取 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 to xml 从 xml 中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28367741/