代码生成的XML输出中的C#XML格式错误

代码生成的XML输出中的C#XML格式错误,c#,xml,formatting,C#,Xml,Formatting,所以我有一个已经存在的文件,我读取这个文件并向其中添加一些节点。由于所需处理的性质,我的代码处于循环中,因此对于给定数据表中的每一行,我打开现有文件,编写新节点,然后关闭文件 第一次迭代完美地插入了节点组。此后的每一次迭代都是有问题的,并且以某种方式添加到第一个分组中,而不是创建自己的分组 这是每个分组的外观,也是它生成第一个分组的方式: <item identifier="ITEM-F2D7FEDF240B4DCCBF346DBE2C47AC89" identifierref="RE

所以我有一个已经存在的文件,我读取这个文件并向其中添加一些节点。由于所需处理的性质,我的代码处于循环中,因此对于给定数据表中的每一行,我打开现有文件,编写新节点,然后关闭文件

第一次迭代完美地插入了节点组。此后的每一次迭代都是有问题的,并且以某种方式添加到第一个分组中,而不是创建自己的分组

这是每个分组的外观,也是它生成第一个分组的方式:

  <item identifier="ITEM-F2D7FEDF240B4DCCBF346DBE2C47AC89" identifierref="RES-770DCE40C5BA4E97B1E3B3DB49BBBD4F" isvisible="true" parameters="">
    <title>Title1</title>
    <adlcp:datafromlms xmlns:adlcp="http://www.imsproject.org/xsd/imscp_rootv1p1p2">
    </adlcp:datafromlms>
  </item>

这就是问题所在:

docXMLFile.GetElementsByTagName("item")[0]
          .InsertAfter(xTitle,
                       docXMLFile.GetElementsByTagName("item")[0].LastChild);
docXMLFile.GetElementsByTagName("item")[0]
          .InsertAfter(xADLCPDataFromLMS, 
                       docXMLFile.GetElementsByTagName("item")[0].LastChild);
您显式地使用了第一个
元素。我想你真的只是想:

xItem.AppendChild(xTitle);
xItem.AppendChild(xADLCPDataFromLMS);

毕竟,您要做的是将元素附加到新创建的
元素,对吗?

这正是我想要的。我不知道我为什么不这样做!
docXMLFile.GetElementsByTagName("item")[0]
          .InsertAfter(xTitle,
                       docXMLFile.GetElementsByTagName("item")[0].LastChild);
docXMLFile.GetElementsByTagName("item")[0]
          .InsertAfter(xADLCPDataFromLMS, 
                       docXMLFile.GetElementsByTagName("item")[0].LastChild);
xItem.AppendChild(xTitle);
xItem.AppendChild(xADLCPDataFromLMS);