You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LINQ和XElement将CSV转XML时如何删除重复Header标签

问题原因

你当前的代码嵌套创建了两层标签:外层先实例化了名为header的根节点,又将LINQ查询返回的Header元素作为它的子节点,所以最终输出会出现两层嵌套结构。

解决方法

如果你的source集合中仅包含1条头部CSV记录,直接提取第一条记录拆分字段,创建单个Header节点即可,修改后代码如下:

// 提取第一条CSV行拆分字段
var fields = source.First().Split('|');
XElement header = new XElement("Header",
    //new XAttribute("CustomerID", fields[0]),
    new XElement("FileId", fields[1]),//da calcolare
    new XElement("SenderId", fields[2]),
    new XElement("ProcessingDate", DateTime.Now.ToString("yyyyMMdd")),
    new XElement("ProcessingTime", DateTime.Now.ToString("HHmm"))
);

运行上述代码后生成的XML结构如下:

<Header>
  <FileId>00476170246</FileId>
  <SenderId>TEST</SenderId>
  <ProcessingDate>20210819</ProcessingDate>
  <ProcessingTime>1825</ProcessingTime>
</Header>

补充说明

如果生成的Header标签自带xmlns=""空命名空间属性,是因为该节点的命名空间和它的父节点命名空间不匹配,创建XElement时传入和父节点一致的XNamespace参数即可消除该属性。

内容的提问来源于stack exchange,提问作者Fabio V.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:09:03