我有几个看起来像的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转换对于看似简单的操作来说似乎有点麻烦。)
答案 0 :(得分:4)
你非常接近。尝试更改行
mergedXmlDocs.Add(xElem);
到
mergedXmlDocs.Root.Add(xElem);
问题是每个XML文档只能包含1个根节点。您现有的代码正在尝试添加根级别的所有节点。您需要将它们添加到现有的顶级节点。
答案 1 :(得分:0)
我不确定您使用的是哪种编程语言,但对于大多数编程语言,都有广泛的XML支持类。他们中的大多数允许解析甚至添加元素。我将保留一个主文件,然后解析每个新文件,将新元素添加到主文件中。
编辑:对不起看起来你已经在做这件事了。