2011-03-30 80 views
1

我有我的班上有几个对象编写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序列化是更好的方法吗?

+3

'XmlSerializer'不知道如何在不执行'IXmlSerializable'或类似的东西的情况下序列化Dictionary '。 – climbage 2011-03-30 23:38:29

回答

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) 
     ) 
    ) 
);