このタイトルは紛らわしいかもしれません。
linq で xml を読んでいるときに、非常に奇妙な問題が発生しました。
私のXMLはどういうわけか次のようになっています:
<Result>
<Hotels>
<Hotel>
<Documents>
<Image>
<Url>http://www.someUrlToImage1</Url>
</Image>
<Image>
<Url>http://www.someUrlToImage2</Url>
</Image>
</Documents>
<Room>
<Documents>
<Image>
<Url>http://www.someUrlToImage3</Url>
</Image>
<Image>
<Url>http://www.someUrlToImage4</Url>
</Image>
</Documents>
</Room>
</Hotel>
<Hotels>
<Result>
ホテルに関する2つの画像を取得したい場合は、4つの画像すべてを取得します...:
Hotel temp = (from x in doc.Descendants("Result").Descendants("Hotels").Descendants("Hotel")
select new Hotel()
HotelImages= new Collection<string>(
x.Descendants("Documents").SelectMany(
documents => documents.Descendants("Images").Select(
document => (string)document.Descendants("URL").FirstOrDefault() ?? "")).ToList())
}).First();
誰かが私の前にこの問題を抱えていることを願っています。