将仅带标头的CSV转换为XML

时间:2013-06-06 17:37:35

标签: c# .net xml linq csv

我正在尝试将CS​​V文件转换为XML。我目前使用的代码是:

XElement xml = new XElement(rootElementName,
                lines.Where((line, index) => index > 0)
                    .Select(line => new XElement(itemElementName,
                        line.Split(',').Select((column, index) => new XElement(headers[index], column)))));

这很好用。我面临的问题是我正在尝试加载一个只有一行包含列标题的CSV文件。我想创建一个包含空项的空XML:

<XML>
    <item>
        <column1></column1>
        <column2></column2>
    </item>
</XML>

等等。我对lambda不太好,所以我不确定是否有办法做我想做的事。

由于

1 个答案:

答案 0 :(得分:0)

好的,稍微戳了一下后我就开始工作了:

if (lines.Length == 1)
            {
                xml = new XElement(rootElementName,
                lines.Select(line => new XElement(itemElementName,
                        line.Split(',').Select((column, index) => new XElement(headers[index], "")))));
            }
            else
            {
                xml = new XElement(rootElementName,
                    lines.Where((line, index) => index > 0)
                        .Select(line => new XElement(itemElementName,
                            line.Split(',').Select((column, index) => new XElement(headers[index], column)))));
            }

这就是我想要的,但如果有更好的方法,请随时告诉我。感谢

相关问题