在C#中编写包含多个对象的XML文档

时间:2011-03-30 23:36:22

标签: c# xml

我班上有几个对象

List<string> a
List<string> b
Dictionary<string,string> c

我想要一个生成的XML文档,其中包含这三个对象中包含的数据,以便它们看起来像:

<myobject>
    <as>
     <a value="xxxxx" />
     <a value="xxxxx" />
     <a value="xxxxx" />
    </as>
    <bs>
     <b value="xxxxx" />
     <b value="xxxxx" />
     <b value="xxxxx" />
    </bs>
    <cs>
     <c key="x" value="xxxxx" />
     <c key="x" value="xxxxx" />
     <c key="x" value="xxxxx" />
    </cs>
</myobject>

这里最合适的技术是什么? 我应该遍历每个对象还是有更简单的方法来做到这一点? Tere是.Net中的一些XML编写者,我不确定要使用哪些。 XML序列化是更好的方法吗?

1 个答案:

答案 0 :(得分:3)

using System.Linq;
using System.Xml.Linq;

...

XDocument doc = new XDocument(
    new XElement("as",
        a.Select(item => new XElement("a",
           new XAttribute("value", item)
        )
    ),
    new XElement("bs",
        b.Select(item => new XElement("b",
           new XAttribute("value", item)
        )
    ),
    new XElement ("cs",
        c.Select(item => new XElement("c",
           new XAttribute("key", item.Key),
           new XAttribute("value", item.Value)
        )
    )
);