[英]C# Linq XML Query where multiple elements of same name already exists
我的xml是這樣的:
<Destination>
<CityCode>GRAGMRNCHN</CityCode>
<CityName>Agia Marina</CityName>
<ZoneCode>CRTCHN</ZoneCode>
<ZoneName>Creta - Chania</ZoneName>
<Departures>
<Departure>
<CountryCode>RO</CountryCode>
<CountryName>Romania</CountryName>
<CityCode>ROBCH1</CityCode>
<CityName>Bucuresti</CityName>
<GiataCodes>
<GiataCode>28029</GiataCode>
<GiataCode>759</GiataCode>
<GiataCode>28575</GiataCode>
<GiataCode>756</GiataCode>
<GiataCode>47839</GiataCode>
</GiataCodes>
<Dates>
<Date TourOpCode="EU" Nights="7,14,21">2016-06-22</Date>
<Date TourOpCode="EU" Nights="7,14,21">2016-06-29</Date>
<Date TourOpCode="EU" Nights="7,14,21">2016-07-06</Date>
<Date TourOpCode="EU" Nights="7,14,21">2016-07-13</Date>
<Date TourOpCode="EU" Nights="7,14,21">2016-07-20</Date>
<Date TourOpCode="EU" Nights="7,14,21">2016-07-27</Date>
<Date TourOpCode="EU" Nights="7,14,21">2016-08-03</Date>
<Date TourOpCode="EU" Nights="7,14,21">2016-08-10</Date>
<Date TourOpCode="EU" Nights="7,14,21">2016-08-17</Date>
<Date TourOpCode="EU" Nights="7,14,21">2016-08-24</Date>
<Date TourOpCode="EU" Nights="7,14,21">2016-08-31</Date>
<Date TourOpCode="EU" Nights="7,14,21">2016-09-07</Date>
<Date TourOpCode="EU" Nights="7,14">2016-09-14</Date>
<Date TourOpCode="EU" Nights="7">2016-09-21</Date>
</Dates>
</Departure>
現在我想提取 CityCode(destination)、CityCode(departure)、可用日期及其夜間屬性。 我在約會! 使用 Xdcument 我只得到日期中的第一個元素。
下面是解析代碼:
packageList = (from destination in xDoc.Descendants(nonamespace + "Destination")
select new PackageInformation
{
DestinationCityCode = destination.Element("CityCode").Value,
DepartureCityCode = destination.Descendants("Departure")
.Select( c => new DepartureCityClass()
{
DepartureCityCode = c.Element("CityCode").Value
}).ToList(),
Dates = destination.Descendants("Departures").Descendants("Departure").Descendants("Dates")
.Select(d => new DatesClass()
{
Date = d.Element("Date").Value,
Nights = d.Element("Date").Attributes("Nights").First().Value
}).ToList()
}).ToList();
任何幫助! 謝謝。
試試這個,應該可以正常工作:
var packageList = (from destination in xd.Descendants("Destination")
select new
{
DestinationCityCode = destination.Element("CityCode").Value,
DepartureCityCode = destination.Descendants("Departure")
.Select(c => new
{
DepartureCityCode = c.Element("CityCode").Value
}).ToList(),
Dates = destination.Descendants("Departure").Descendants("Dates").Descendants("Date")
.Select(d => new
{
Date = d.Value,
Nights = d.Attributes("Nights").First().Value
}).ToList()
}).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.