1

我有一个数据表,我想构造一个 xml。我能做到这么远......需要一些帮助。

数据表

factory,  item
---------------
1,  123
1,  345
2,  999

xml 应该看起来像

<test>
 <factory>1</factory>
 <items>
   <item>123</item>
    <item>345</item>
 </items>
</test>

IEnumerable<XElement> files = from f in dt.AsEnumerable() 
                 select new XElement("test", 
                     new XElement("factory", f["factory"]), 
                     new XElement("item", new XElement("item",f["item"])));

上面的查询给了我一个平面 xml

<test>
 <factory>1</factory>
 <items>
   <item>123</item>   
 </items>
</test>
<test>
 <factory>1</factory>
 <items>
   <item>345</item>   
 </items>
</test>
4

1 回答 1

0

这会返回一个XElement,而不是一个IEnumerable<XElement>(如果你只想要一个,这是逻辑<test>,我认为:

var result= new XElement("test", dt
                                 .AsEnumerable()
                                 .GroupBy(m => m["factory"])
                                 .Select(f =>
                                        new XElement("factory",
                                            f.Key,
                                            new XElement("items", f.Select(g =>  
                                                new XElement("item", g["item"]))))));
于 2012-06-22T20:24:35.010 回答