【问题标题】:How to merge multiple XML files with data in same format in it to a single XML file with all data together using C#.NET?如何使用 C#.NET 将具有相同格式数据的多个 XML 文件合并为一个包含所有数据的 XML 文件?
【发布时间】:2020-03-19 08:03:49
【问题描述】:

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

XML 文件 1:

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

XML 文件 2:

<Product>
    <ID>002</ID>
    <Name>Peter</Name>
    <Designation>Tester</Designation>
</Product>

XML 文件 3:

<Product>
    <ID>003</ID>
    <Name>Arun</Name>
    <Designation>Support</Designation>
</Product>

XML 文件 4:

<Product>
    <ID>004</ID>
    <Name>Swetha</Name>
    <Designation>Analyst</Designation>
</Product>

XML 文件 5:

<Product>
    <ID>005</ID>
    <Name>Gokul</Name>
    <Designation>Maintainence</Designation>
</Product>

我需要将所有这些文件合并到一个 XML 文件中,如下所示,然后放入另一个 blob (ABC)。

合并的 XML 文件:

<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();
                    }

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

【问题讨论】:

  • 通过在堆栈溢出中搜索类似问题:stackoverflow.com/questions/6045010/how-can-i-merge-xml-files/…
  • @OguzOzgul 感谢分享。它解释了将所有元素合并到一个节点下。我希望将 XML 节点合并到一个文件中,每个文件用逗号分隔。
  • 但这不是有效的xml?
  • 这是数据库迁移操作吗?稍后您将如何阅读和处理此内容?通过 ',' 获取和拆分?
  • 因为在这种情况下,您需要的(假设您已经阅读了 Blob 并且知道如何将另一个 Blob 放回去)是多个字符串连接操作,仅此而已。

标签: c# .net xml azure


【解决方案1】:

选项 1:

  1. 创建产品类
  2. 通过反序列化 xml 来填充 Product 对象
  3. 将产品对象添加到列表中
  4. 序列化列表

选项 2:

  1. 将 xml 读取为 XML 文档
  2. 将产品 xml 填充为 xml 节点
  3. 将 xml 节点添加到 xml 文档中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多