2012-05-14 27 views
0

我試圖用其他xml文件中的部分創建一個新的xml文件。例如我得到這2個XML文件:獲取xml文件的一部分,並將它們捆綁在一個新文件中

文件1:

<root> 
    <persons> 
     <person1> 
      <name> </name> 
      <address> </address> 
      <number> </number> 
     </person1> 
     <person2> 
      <name> </name> 
      <address> </address> 
      <number> </number> 
     </person2> 
    </persons> 
</root> 

文件2:

<registration> 
    <results> 
     <result1> 
      <test1> </test1> 
      <Test2> </test2> 
     </result1> 
     <result2> 
      <test1> </test1> 
      <Test2> </test2> 
     </result2> 
    </results> 
</registration> 

新的XML文件應該是這樣的:

<combined> 
    <persons> 
     <person1> 
      <name> </name> 
      <address> </address> 
      <number> </number> 
     </person1> 
     <person2> 
      <name> </name> 
      <address> </address> 
      <number> </number> 
     </person2> 
    </persons> 
    <results> 
     <result1> 
      <test1> </test1> 
      <Test2> </test2> 
     </result1> 
     <result2> 
      <test1> </test1> 
      <Test2> </test2> 
     </result2> 
    </results> 
</combined> 

如何我可以在C#中使用xmldocument來完成此操作嗎?

編輯

一些詳細信息,「結果」應該把新的XML文檔(包括「人」和「結果」)中的節點「人」和。

+0

任何理由不使用的XDocument或其他什麼東西? –

+0

沒有特別的理由。如果你知道我可以用XDocument完成這件事,那對我很好。 – Yustme

回答

1
XElement root1 = XElement.Load(file1); 
XElement root2 = XElement.Load(file2); 
XElement combined = new XElement("combined"); 

foreach(XElement node1 in root1.Elements()) 
    combined.Add(node1); 

foreach(XElement node2 in root2.Elements()) 
    combined.Add(node2); 

combined.Save(file3); 
2

基本上是:

var doc1 = XElement.Load(file1); 
var doc2 = XElement.Load(file2); 

var combined = new XElement("combined", doc1.Descendants("person"), doc2); 

combined.Save(file3); 
+0

嗨,我更新了我的問題。另外,文檔應該保存到磁盤。如果var'combined'被轉換爲XDocument()可以理解的東西? – Yustme

+0

您的示例數據不完全一致,但應該很容易計算出doc1和doc2中的確切選擇。 –

+0

現在應該是一致的。我在這個網站上做了一個簡單的例子。我只是編輯記事本+ +中的一切。 – Yustme

相關問題