我有以下的XML。鉴于,UID
,Manufacturer Name
和Image Layout
,我想拉出所有可能的大小存在于xml中。如何使用LINQ选择内部XML节点的集合?
<Rules>
<UniqueID UID="123413">
<Manufacturer Name="XYZ Company">
<Image Layout="Portrait">
<Size rows="512" cols="512" price="x" />
<Size rows="1024" cols="1024" price="y" />
</Image>
</Manufacturer>
</UniqueID>
</Rules>
我现在就做的方式是:
XElement rules = XElement.Parse(xmlDoc.OuterXml);
var uids = rules.Elements("UniqueID")
.Where(x=> (string)x.Attribute("UID")=="123413")
.ToList();
foreach(var uid in uids)
{
var manufacturers = uid.Elements(("UniqueID")
.Where(x=> (string)x.Attribute("Name")=="XYZ Company")
.ToList();
}
,以此类推,直到我有可能大小的集合。
所以我使用了3个foreach循环。有没有更好的方法实现这一点,可能只需一行代码,使用LINQ?
你为什么不每年年底使用分号任何理由线? – 2011-03-04 19:32:46
@Rafe:可能是因为OP最初有用刻度标记的代码。所以它们可能都是单独的代码行,而不是连续的代码块。 – mellamokb 2011-03-04 19:33:54
@Rafe - 现在已修复:) – 2011-03-04 19:36:05