使用LIST数据生成XML文件

时间:2015-08-13 19:38:16

标签: c# xml linq linq-to-sql linq-to-xml

我的列表中的数据如下所示。

List<APIConfigValue> 

现在我必须生成如下的XML文件。

    <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="ScanTime.Web" value="11D_SVC1" />
    <add key="eTime.Punch" value="true" />
    <add key="DataMartUrl" value="syscontrol" />
  </appSettings>
</configuration>

根据列表中的记录数,它应该自动生成。 我正在尝试使用xml linq库。

这就是我的开始......

XDocument doc = new XDocument(
            new XElement("configuration",
                new XElement("appSettings",
                    new XElement("add", new XAttribute("key", "APP.Web"), new XAttribute("value", "true"))
                    )
            )
        );

我被困在如何从这里的列表中循环。我试着找文章。但没有关系。 感谢您的时间和回应。

2 个答案:

答案 0 :(得分:1)

我将假设每个APIConfigValue都有两个属性:keyvalue

List<APIConfigValue> data = foo;
XDocument doc = new XDocument(
    new XElement("configuration",
        new XElement("appSettings",
            data.Select((conf) => new XElement("add", new XAttribute("key", conf.key), new XAttribute("value", conf.value)).ToArray()
        )
    )
);

这样做会将每个APIConfigValue映射到具有两个属性的XElementkey的{​​{1}}和value

但是,如果您计划导出和导入此XML格式,我建议您查看XMLSerializer类。

答案 1 :(得分:0)

假设您已相应地填充了您的列表:

List<APIConfigValue> yourList = //assign your list here;
foreach (APIConfigValue apiConfigItem in yourList)
{
    //write out your nodes from the list here using apiConfigItem
}