-3

我有 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 中特定下的所有条目替换为文件 2 中特定下的条目。

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

4

1 回答 1

0

再会。

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

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

结果是 file3.xml:

<?xml version="1.0" encoding="utf-8"?>
<System>
    <General>
        <Instrument>
            <Specific>
                <Name>Test2</Name>
                <Age>10</Age>
            </Specific>
        </Instrument>
    </General>
</System>
于 2015-10-23T18:42:56.407 回答