문제

i want combine two xml that one of them is template and other is data, how can i do this?

XML one:

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

XML two:

<data>
  <page no="1">data1</Page>
  <page no="2">data2</Page>
  <page no="3">data3</Page>
</data>
도움이 되었습니까?

해결책

Linq solution:

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());
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top