我正在尝试使用 linq to XML 从 XML 文件中获取值,所有节点都被返回,期望最后一个。例如这里它的样本数据
<lista>
- <servizio>
<idservizio>29</idservizio>
<idfascia>0</idfascia>
<nomeservizio>Shuttle service/ Taxi - Fiumicino Airport a Hotel</nomeservizio>
- <descrizioneservizio>
- <![CDATA[ From Fiumicino (FCO) Airport to City Guest House Hotel. Up to 3 people.
]]>
</descrizioneservizio>
<prezzoservizio>50.0</prezzoservizio>
<numerodisponibile>1000</numerodisponibile>
</servizio>
- <servizio>
<idservizio>30</idservizio>
<idfascia>0</idfascia>
<nomeservizio>Shuttle service/ Taxi - Ciampino a Hotel</nomeservizio>
- <descrizioneservizio>
- <![CDATA[ From Ciampino Airport to City Guest House Hotel. Price for up to 3 people.
]]>
</descrizioneservizio>
<prezzoservizio>35.0</prezzoservizio>
<numerodisponibile>1000</numerodisponibile>
</servizio>
</lista>
并且它没有返回 idservizio=30 的节点 servizio。谁能帮助我我做错了什么?下面是我的代码
var ds1 = from XElement e in _resource.Descendants("lista")
select e;
int eCnt = 0;
foreach (XElement e in ds1)
{
XElement elm;
elm = e.Elements("servizio").ElementAt(eCnt).Descendants("idservizio").FirstOrDefault();
int idservice = elm != null ? elm.Value.ToInt32() : 0;
if (idservice == 0) continue;
//HH_dispService service = listService.SingleOrDefault(x => x.service_idservizio == idservice);
HH_dispService service = new HH_dispService(idservice);
elm = e.Elements("servizio").ElementAt(eCnt).Descendants("nomeservizio").FirstOrDefault();
service.service_nomeservizio = elm != null ? elm.Value : "";
elm = e.Elements("servizio").ElementAt(eCnt).Descendants("descrizioneservizio").FirstOrDefault();
service.service_descrizioneservizio = elm != null ? elm.Value : "";
elm = e.Elements("servizio").ElementAt(eCnt).Descendants("prezzoservizio").FirstOrDefault();
service.service_prezzoservizio = elm != null ? elm.Value.Replace(".", ",").objToDecimal() : 0;
listService.Add(service);
eCnt++;
}