如何使用c#替换xml文件中的子元素

时间:2015-10-23 17:56:30

标签: c# xml linq system.xml

我有2个xml文件:

档案1

<xml version.....> 
  <System>
    <General>
      <Instrument>
        <Specific>
          <Name>...</Name>
        </Specific>
      <Instrument>
    </General>
  <System>

文件2

<System>
  <Specific>
    <Name>...</Name>
    <age>...</age>
    ....
  </Specific>
<System>

文件1在元素下只有一个条目特定,文件2在特定元素下有多个条目。我需要将文件1中的Specific下的所有条目替换为文件2中的Specific下的条目。

如何使用System.Xml.Linq或System.Xml在c#中完成?

1 个答案:

答案 0 :(得分:0)

美好的一天。

你可以使用LinqToXml迭代地将节点从一个元素添加到另一个元素。

Device#status

结果是file3.xml:

using System.Xml.Linq;

namespace XmlReplacer
{
    class Program
    {
        static void Main(string[] args)
        {
            var doc1 = XDocument.Load(@"d:\temp\file1.xml");                     
            var doc2 = XDocument.Load(@"d:\temp\file2.xml");
            var specElement1 = doc1.Root.Element("General").Element("Instrument").Element("Specific");
            var specElement2 = doc2.Root.Element("Specific");

            specElement1.RemoveAll();

            foreach (var xElement in specElement2.Elements())
            {
                specElement1.Add(xElement);
            }
            doc1.Save(@"d:\temp\file3.xml");
        }
    }
}