C# XML将节点的属性及子节点赋值给另一个节点
时间: 2024-12-13 12:22:04 浏览: 3
在C#中,你可以使用`XDocument`或`XmlDocument`来复制并合并XML节点及其属性和子节点。这里是一个使用`XDocument`的例子:
```csharp
using System.Xml.Linq;
// 加载源XML文件
XDocument sourceDoc = XDocument.Load("source.xml");
// 找到要复制的节点
var sourceNode = sourceDoc.Root.Element("nodeToCopy");
// 创建目标XML文档
XDocument targetDoc = new XDocument(
new XElement("targetNode",
sourceNode.Attributes().ToList(),
sourceNode.Nodes()
)
);
// 将目标节点添加到新的根元素下
targetDoc.Root.Add(targetNode);
// 保存结果
targetDoc.Save("target.xml");
```
对于`XmlDocument`,操作稍有不同,但基本思想一致:
```csharp
using System.Xml;
XmlDocument sourceDoc = new XmlDocument();
sourceDoc.Load("source.xml");
XmlNode sourceNode = sourceDoc.SelectSingleNode("//nodeToCopy");
XmlDocument targetDoc = new XmlDocument();
XmlElement targetNode = targetDoc.CreateElement("targetNode");
foreach (XmlAttribute attr in sourceNode.Attributes)
{
targetNode.SetAttributeNode(attr.Clone());
}
foreach (XmlNode child in sourceNode.ChildNodes)
{
targetNode.AppendChild(child.Clone(true));
}
targetDoc.AppendChild(targetNode);
targetDoc.Save("target.xml");
```
阅读全文