【问题标题】:Generate XML File using the LIST Data使用 LIST 数据生成 XML 文件
【发布时间】:2015-08-13 19:38:16
【问题描述】:

我有如下列表中的数据。

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

我被困在如何从这里的列表中循环。我试图找到文章。但没有什么接近的。 感谢您的时间和回应。

【问题讨论】:

  • 你应该使用 XmlSerializer 类而不是 XDocument。
  • APIConfigValue 长什么样子?

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


【解决方案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 映射到具有两个属性的XElementAPIConfigValuekeyvalue

但是,如果您打算同时导出和导入这种 XML 格式,我建议您查看 XMLSerializer 类。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-29
      • 2015-09-26
      • 1970-01-01
      • 2011-09-25
      • 2011-04-19
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多