【发布时间】: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 实现这一点?
【问题讨论】:
-
@OguzOzgul 感谢分享。它解释了将所有元素合并到一个节点下。我希望将 XML 节点合并到一个文件中,每个文件用逗号分隔。
-
但这不是有效的xml?
-
这是数据库迁移操作吗?稍后您将如何阅读和处理此内容?通过 ',' 获取和拆分?
-
因为在这种情况下,您需要的(假设您已经阅读了 Blob 并且知道如何将另一个 Blob 放回去)是多个字符串连接操作,仅此而已。