2014-02-18 50 views
-2

我想結合兩個XML其中之一是模板和其他是數據,我怎麼能做到這一點?插入xml字符串到XML元素使用LINQ

XML之一:

<magazine> 
    <content> 
    <page no="1"></page> 
    <page no="2"></page> 
    <page no="3"></page> 
    </content> 
</magazine> 

XML二:

<data> 
    <page no="1">data1</Page> 
    <page no="2">data2</Page> 
    <page no="3">data3</Page> 
</data> 
+1

我想看看你都試過,什麼是您預期的結果。我怎樣才能做到這一點? –

+2

使用XSLT。這篇文章可以幫助你 http://msdn.microsoft.com/en-us/library/ms766462%28v=vs.85%29.aspx – MikkaRin

+0

你可以請你的代碼 –

回答

0

Linq的解決方案:

var content = XDocument.Load("content.xml") 
         .Root.Elements("page") 
         .ToDictionary(p => (int)p.Attribute("no")); 

var xdoc = XDocument.Load("template.xml"); 

foreach (var page in xdoc.Descendants("page")) 
{ 
    XElement data; 
    if (!content.TryGetValue((int)page.Attribute("no"), out data)) 
     continue; 

    page.ReplaceNodes(data.Nodes()); 
} 
+0

坦克答覆,但我忘了說我的數據是XML,我想插入到XML元素xml –

+0

@mahdiyousefi沒有問題 - 你應該用頁面內容的節點替換頁面的節點。更新解決方案 –