0
我需要合併一個xml的未知結構。申請的內容是層次結構不會改變:合併Xml文件
XDocument xDoc1 = XDocument.Parse(@"<Root>
<LeafA>
<a>item1</a>
</LeafA>
<LeafA>
<b>item3</b>
</LeafA>
</Root>");
XDocument xDoc2 = XDocument.Parse(@"<Root>
<LeafA>
<a>item2</a>
</LeafA>
<LeafA>
<b>item4</b>
</LeafA>
</Root>");
Merge(xDoc1.Root, xDoc2.Root);
到目前爲止,我已經
void Merge(XElement left, XElement right)
{
foreach (var node in right.Elements())
{
if (left.Element(node.Name.LocalName) == null)
{
left.Add(node);
}
}
foreach (var x in right.Elements().Where(r => left.Element(r.Name.LocalName) != null))
{
Merge(left.Element(x.Name.LocalName),x);
}
}
這給我的
<Root>
<LeafA>
<a>item1</a>
<b>item4</b>
</LeafA>
<LeafA>
<b>item3</b>
</LeafA>
</Root>
的輸出,但它必須是
<Root>
<LeafA>
<a>item1</a>
<a>item2</a>
</LeafA>
<LeafA>
<b>item3</b>
<b>item4</b>
</LeafA>
</Root>
你試過分析和重建一個新的XML嗎? – Raptor
是的,這不會幫助我 – WhileTrueSleep
我認爲你不能* unupvote *我的答案。我會幫你並刪除它。 – I4V