2011-06-30 7 views
0

次のコードがありますが、動作しません。どうすればこの作品を作れますか? 次のコードは例外を示します。newXdoc.Add(cComb); この操作では、構造化されていないドキュメントが作成されます。Linq varをXDocumentに入れるには?

(またのthnx部分的に私のためのコードを提供ゲルト・ヤンへ)

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); 
+1

動作させるためにあなたがしていたことを知る必要があります。それが*働かない方法を言うなら、それは助けになるでしょう。 http://tinyurl.com/so-hints –

+0

を読んでください。次のコード==> newXdoc.Add(cComb);例外が発生します。 – Remco

+0

この操作では、構造化されていないドキュメントが作成されます。 – Remco

答えて

2

あなたはいくつかのルート要素を与え、ドキュメントの絶対的なルートにいくつかの要素を追加しようとしています。

この問題を解決する最も簡単な方法は、単に使用することです。既存のルート要素代わりに要素を追加します

newXdoc.Root.Add(cComb); 

+0

それは私が探していたものです。 – Remco

関連する問題