我有以下XML:
<root>
<property>
<propertydetails>
<siteid>4</siteid>
</propertydetails>
<gallery>
<image>
<imagesrc></imagesrc>
</image>
</gallery>
</property>
</root>
使用LINQ to XML(C#)我想做的最终是获取特定siteid的所有图库图像。所以,我猜测最好返回propertydetails / siteid等于某个值的整个property元素。
我认为以下方法不起作用,因为我试图在后代中搜索元素并且它不是直接元素。 siteid位于propertydetails下方,但我想访问整个属性标记以获取图库图像。
var properties = from property in root.Descendants("property")
where (int)property.Element("siteid") == id
select new PropertyModel
{
SiteId = Convert.ToInt32(property.Element("siteid").Value),
Images = new List<string>(from gallery in property.Descendants("gallery")
select gallery.Element("imagesrc").Value)
};
}
答案 0 :(得分:0)
我不确定它是否能解决上述问题,但它确实是一种解决方案。我使用xsd转换器将xml转换为xsd文件,然后将xsd文件转换为c#sharp类,可用于加载xml并执行后续处理。