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++;
}