如何使用C#.NET将具有相同格式数据的多个XML文件合并为一个包含所有数据的XML文件?

如何使用C#.NET将具有相同格式数据的多个XML文件合并为一个包含所有数据的XML文件?,c#,.net,xml,azure,C#,.net,Xml,Azure,我有一个blob(XYZ),它接收相同格式的多个XML文件。见下文 XML文件1: <Product> <ID>001</ID> <Name>John</Name> <Designation>Developer</Designation> </Product> 如何使用C#NET实现这一点 选项1: 创建产品类 通过对xml进行反序列化,用值填充产品对象 将产品对象添加到列表

我有一个blob(XYZ),它接收相同格式的多个XML文件。见下文

XML文件1:

<Product>
    <ID>001</ID>
    <Name>John</Name>
    <Designation>Developer</Designation>
</Product>

如何使用C#NET实现这一点

选项1:

  • 创建产品类
  • 通过对xml进行反序列化,用值填充产品对象
  • 将产品对象添加到列表中
  • 序列化列表
  • 选项2:

  • 读取xml到xml文档
  • 将产品xml填充为xml节点
  • 将xml节点添加到xml文档中

  • 通过搜索stack overflow来寻找类似的问题:@OguzOzgul感谢分享。它解释了如何将所有元素合并到单个节点下。我希望将XML节点合并到一个文件中,每个文件用逗号分隔。但这不是有效的XML?这是数据库迁移操作吗?你以后打算如何阅读和处理这些内容?通过获取并按“,”分割,因为在这种情况下,您需要的是多个字符串连接操作(假设您已经读取了Blob并知道如何将另一个Blob放回),而不是其他操作。
    <Product>
        <ID>002</ID>
        <Name>Peter</Name>
        <Designation>Tester</Designation>
    </Product>
    
    <Product>
        <ID>003</ID>
        <Name>Arun</Name>
        <Designation>Support</Designation>
    </Product>
    
    <Product>
        <ID>004</ID>
        <Name>Swetha</Name>
        <Designation>Analyst</Designation>
    </Product>
    
    <Product>
        <ID>005</ID>
        <Name>Gokul</Name>
        <Designation>Maintainence</Designation>
    </Product>
    
    <xml>
    <Product>
        <ID>001</ID>
        <Name>John</Name>
        <Designation>Developer</Designation>
    </Product>
    
    <Product>
        <ID>002</ID>
        <Name>Peter</Name>
        <Designation>Tester</Designation>
    </Product>
    
    <Product>
        <ID>003</ID>
        <Name>Arun</Name>
        <Designation>Support</Designation>
    </Product>
    
    <Product>
        <ID>004</ID>
        <Name>Swetha</Name>
        <Designation>Analyst</Designation>
    </Product>
    
    <Product>
        <ID>005</ID>
        <Name>Gokul</Name>
        <Designation>Maintainence</Designation>
    </Product>
    </xml>
    
                        using (var jw = new XmlTextWriter(sw)) //sw holds the o/p location to store the merged files 
                        {
                            jw.WriteStartElement("root");
    
                            int i = 0;
                            int c = list.Count();
                            foreach (var item in list)
                            {
                                if (i > 0)
                                    await jw.WriteRawAsync("\r\n");
    
                                var blobdata = await OutputContainerService.GetContentAsync(input.InputLocation + "/" + item);
                                await jw.WriteRawAsync(blobdata);
                                i++;
                            }
    
                            jw.WriteEndElement();
    
                            await jw.FlushAsync();
                        }