C# 使用linq to xml将多个xml文件合并为一个
喂,这是我的XML文件 XML文件1C# 使用linq to xml将多个xml文件合并为一个,c#,xml,linq,C#,Xml,Linq,喂,这是我的XML文件 XML文件1 <Root> <Parent> <Child>1</Child> <child>2</Child> </Parent> <Parent> <child>3</Child> <Child>4</Child> </P
<Root>
<Parent>
<Child>1</Child>
<child>2</Child>
</Parent>
<Parent>
<child>3</Child>
<Child>4</Child>
</Parent>
</Root>
Xml文件2
<Root>
<Parent>
<Child>5</Child>
<Child>6</Child>
</Parent>
<Parent>
<Child>7</Child>
<Child>8</Child>
</Parent>
</Root>
根据我的要求生成的XML文件
<Root>
<Parent>
<Child>1</Child>
<Child>2</Child>
</Parent>
<Parent>
<Child>3</Child>
<Child>4</Child>
</Parent>
<Parent>
<Child>5</Child>
<Child>6</Child>
</Parent>
<Parent>
<Child>7</Child>
<Child>8</Child>
</Parent>
</Root>
在下面的函数中,我提供了要组合在字符串数组中并尝试合并它们的xml文件路径
private void BindDataInGrid(string[] argFilePaths)
{
XDocument tempFile = XDocument.Load(argFilePaths[0]);
for (int i = 1; i < argFilePaths.Length; i++)
{
tempFile.Descendants("Parent")
.Union(XDocument.Load(argFilePaths[i]).Root.Descendants("Parent"));
}
}
在tempFile中,只有来自第一个文件的记录,没有来自其他文件的记录。首先,我很抱歉,因为我忘了提到我不想永久保存结果文件。我自己相应地解决了它
private void BindDataInGrid(string[] argFilePaths)
{
List<Parent> recordsList = new List<Parent>();
for (int i = 0; i < argFilePaths.Length; i++)
{
recordsList.AddRange
(
XDocument.Load(argFilePaths[i]).Root.Descendants("Resident")
.Select(data => new Parent()
{
Child1 = data.Element("Child1").Value,
Child2 = data.Element("Child2").Value,
}).ToList()
);
}
}
已将recordsList用作数据源。您需要在操作结束时保存tempFile。