合并类似的xml文档

时间:2009-08-13 21:22:55

标签: c# xml

我有几个看起来像的XDocuments:

<Test>
  <element
      location=".\jnk.txt"
      status="(modified)"/>
 <element
     location=".\jnk.xml"
     status="(overload)"/>
</Test>

在C#中,我创建了一个新的XDocument:

XDocument mergedXmlDocs = new XDocument(new XElement("ACResponse"));

尝试添加其他XDocuments中的节点:

for (ti = 0; (ti < 3); ++ti)
{
    var query = from xElem in xDocs[(int)ti].Descendants("element")
        select new XElement(xElem);

    foreach (XElement xElem in query)
    { 
        mergedXmlDocs.Add(xElem);
    }
}

在运行时,我收到有关Add如何创建格式错误的文档的错误 我做错了什么?
感谢...

(我看到了这个问题 - Merge XML documents - 但是创建一个XSLT转换对于看似简单的操作来说似乎有点麻烦。)

2 个答案:

答案 0 :(得分:4)

你非常接近。尝试更改行

mergedXmlDocs.Add(xElem);

mergedXmlDocs.Root.Add(xElem);

问题是每个XML文档只能包含1个根节点。您现有的代码正在尝试添加根级别的所有节点。您需要将它们添加到现有的顶级节点。

答案 1 :(得分:0)

我不确定您使用的是哪种编程语言,但对于大多数编程语言,都有广泛的XML支持类。他们中的大多数允许解析甚至添加元素。我将保留一个主文件,然后解析每个新文件,将新元素添加到主文件中。

编辑:对不起看起来你已经在做这件事了。