我有两个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下面我不知道如何在特定节点插入。
答案 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;您需要更改此节点。