與該XML數據:迭代XML LINQ查詢時訪問嵌套元素?
<item>
<placemarks>
<placemark>
<uid>{EA5FA2B2-78CB-4FAA-9F17-EBB361410499}</uid>
</placemark>
</placemarks>
<links>
<link>
<title>Book Online</title>
<link>https://blah</link>
</link>
<link>
<title>Call to Book</title>
<link>tel:1-866-555-5555</link>
</link>
</links>
</item>
我試圖創建對象酒店W從XML /各種屬性。一切工作正常,直到我打嵌套的XML標記,然後我就死:
var items = root.Descendants ("item");
var hotels = from it in items
select new Hotel() {
Uid = it.Element ("uid").Value,
Name = it.Element ("name").Value,
Description = it.Element ("description").Value,
ImageUrl = it.Element ("image_url").Value,
RoomType = it.Element("custom_1").Value,
PlacemarkId = it.Element("placemarks").Element("placemark").Element("uid").Value,
BookUrl = (from links in it.Descendents("links") where links.Element("link").Element("title) = "Book Online").Value
};
我怎麼PlacemarkId工作?我一直收到null,因爲第一個元素(「地標」)之後的方法顯然失敗:-( 顯然,設置BookUrl屬性不會編譯,但這就是我想要做的。奇怪的XML模式瓦特/嵌套鏈接標籤:-(
對不起,noob問題。我試着谷歌搜索每個組合的「嵌套xml linq選擇」我可以想到瓦特/沒有運氣:-P 會幫助更多如果有人可以讓我知道我想要做的就是所謂的LINQ。我認爲這是可能的...
在此先感謝:-)
使用後代( 「UID」)我而不是Element()。 – jdweng
因此,爲了使事情複雜化,- 直接在它下面有一個
標記(我嘗試顯示xml文檔的子集)。如果我使用了後代(「uid」),它就選擇了第一個(它進入了Hotel的Uid屬性)。 –
kenyee
顯示完整的.xml文件 –