Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用linq to xml将多个xml文件合并为一个_C#_Xml_Linq - Fatal编程技术网

C# 使用linq to xml将多个xml文件合并为一个

C# 使用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

喂,这是我的XML文件

XML文件1

<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。