【问题标题】:insert xml string to xml element using LINQ使用 LINQ 将 xml 字符串插入 xml 元素
【发布时间】:2014-02-18 09:26:01
【问题描述】:

我想合并两个xml,其中一个是模板,另一个是数据,我该怎么做?

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>

【问题讨论】:

标签: c# xml linq linq-to-xml xelement


【解决方案1】:

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());
}

【讨论】:

  • tanx 回复,但我忘了说我的数据是 xml,我想将 xml 插入到 xml 元素中
  • @mahdiyousefi 没问题 - 您应该将页面节点替换为页面内容节点。更新解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-30
  • 1970-01-01
  • 2012-03-22
  • 1970-01-01
  • 2013-05-16
  • 2020-09-30
相关资源
最近更新 更多