2011-03-30 81 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) 
     ) 
    ) 
);