我有一个从我的数据库收集的页面列表。每个页面都有一个XML字段,如下所示:
<items>
<item id="153"/>
<item id="147"/>
</items>
现在我只想要指向XML中特定id的页面。所以像这样:
var pages = GetAll().Where(p => p.XmlField //this is where i'm lost
我想做这样的事情:
p.XmlField.Descendants().Where(x => x.Attribute("id") == id
答案 0 :(得分:1)
如果您想检查item
中的任何 XmlField
是否具有正确的ID:
var pages = GetAll().Where(p => p.XmlField
.Descendants("item")
.Any(x => (int) x.Attribute("id") == id));
或者可能想要使用以下内容:
var pages = from page in GetAll()
from item in page.XmlField.Descendants("item")
where (int) item.Attribute("id") == id
select page;
如果XML具有两次相同的ID,那将为您提供重复的页面。