与该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文件 –