Linq/XML:在XML元素内正确分组结果
问题描述:
好的,我问了如何返回一个Linq查询结果为XML,并且我得到了答案here。Linq/XML:在XML元素内正确分组结果
但是有一个小问题:结果不能在逻辑上在XML中分组。例如:
XElement xml = new XElement("States",
from s in MyStates
from cy in s.Counties
from c in cy.Cities
where s.Code == "NY"
orderby s.Code, cy.Name, c.Name
select new XElement("State",
new XAttribute("Code", s.Code),
new XAttribute("Name", s.Name),
new XElement("County",
new XAttribute("Name", cy.Name),
new XElement("City",
new XAttribute("Name", c.Name)
)
)
)
);
Console.WriteLine(xml);
输出的形式为:
<State Code="NY" Name="New York ">
<County Name="WYOMING">
<City Name="WARSAW" />
</County>
</State>
<State Code="NY" Name="New York ">
<County Name="WYOMING">
<City Name="WYOMING" />
</County>
</State>
<State Code="NY" Name="New York ">
<County Name="YATES">
<City Name="BELLONA" />
</County>
</State>
<State Code="NY" Name="New York ">
<County Name="YATES">
<City Name="MIDDLESEX" />
</County>
</State>
<State Code="NY" Name="New York ">
<County Name="YATES">
<City Name="PENN YAN" />
</County>
</State>
<State Code="NY" Name="New York ">
<County Name="YATES">
<City Name="RUSHVILLE" />
</County>
</State>
代替:
<State Code="NY" Name="New York ">
<County Name="WYOMING">
<City Name="WARSAW" />
<City Name="WYOMING" />
</County>
<County Name="YATES">
<City Name="BELLONA" />
<City Name="MIDDLESEX" />
<City Name="PENN YAN" />
<City Name="RUSHVILLE" />
</County>
</State>
如何根据需要我去出现的结果?
答
为了得到你想要的结果,我相信你必须嵌套LINQ to XML查询。在外部查询中,您必须查询不同的状态......然后是内部查询以获取该州的县...然后是另一个内部查询以获取该县的城市。