我需要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"
,则值= 0XML格式
<Раздел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/