如何在特定节点C中将XML文件插入另一个XML文件#

时间:2018-03-26 12:03:49

标签: c# .net xml

我有两个XML文件,第一个是,并命名为 XMLTemplate

<DataSources>
<DataSource Name="XXXX">
</DataSource>
<DataSource Name="ABC">
</DataSource>
</DataSources>
<DataSets>
<DataSet Name="abc">
<Query> 
</Query>
<ReportSections>
</ReportSections>

,第二个xml文件命名为 XMLGenrated

<Fields>
<Field >
</Field>
</Fields>

我需要输出为,      

<DataSource Name="XXXX">
    </DataSource>
    <DataSource Name="ABC">
    </DataSource>
    </DataSources>
    <DataSets>
    <DataSet Name="abc">
    <Query> 
    <Fields>
    <Field >
    </Field>
    </Fields>
    </Query>
    <ReportSections>
    </ReportSections> 

两个文件都在.XML扩展中,我不知道如何通过名称找到节点任何人都可以帮助我。

我试过了,

XElement xFileRoot = XElement.Load(XMLTemplate.xml);
XElement xFileChild = XElement.Load(XMLGenerated.xml);
xFileRoot.Add(xFileChild);
xFileRoot.Save(file1.xml);

但XML添加在XMLTemplate下面我不知道如何在特定节点插入。

1 个答案:

答案 0 :(得分:1)

使用Linq to XML查找节点并替换其内容

XElement xFileRoot = XElement.Load(XMLTemplate.xml);
XElement xFileChild = XElement.Load(XMLGenerated.xml);


var queryNode = xFileRoot.Element("Query");

queryNode.ReplaceWith(xFileChild) ;

基于这个答案 - How can I update/replace an element of an XElement from a string?

请注意,您对XML文件的示例包含多个根节点,如果您需要保留&lt; Query&gt;您需要更改此节点。