我有以下代码,但它不起作用。我怎样才能做到这一点? 以下代码给出了一个例外: newXdoc.Add(cComb); 此操作会创建结构不正确的文档。
(对于Gert-Jan而言,他也部分为我提供了代码)
private void button1_Click(object sender, EventArgs e)
{
var x1 = XDocument.Load(sourceFilepathTb.Text);
var x2 = XDocument.Load(targetFilepathTb.Text);
// select the CLASS nodes from each
var c1 = x1.Descendants("ActionDesign").First().Descendants("Action");
var c2 = x2.Descendants("ActionDesign").First().Descendants("Action");
// this one gives the distinct union of the two, you can
// put that into the result xdoc.
var cComb =
c1
.Union(c2)
.Distinct(new ClassComparer())
.OrderBy(c => c.Attribute("Id").Value);
XDocument newXdoc = new XDocument(
new XDeclaration("1", "utf-8", null),
new XElement("Application"));
//newXdoc.Add(new XElement(cComb));
//newXdoc.Add(new XDeclaration("1", "utf-8", "yes"));
newXdoc.Add(cComb);
答案 0 :(得分:2)
您正在尝试向文档的绝对根添加多个元素,并提供多个根元素。
解决此问题的最简单方法就是使用:
newXdoc.Root.Add(cComb);
这会将元素添加到现有的根元素中。