C# XML添加节点


                             XmlNode root = xn.FirstChild.FirstChild;
                            XmlElement xesub1 = doc.CreateElement("image");
                            xesub1.InnerText = strA;//设置文本节点
                            root.AppendChild(xesub1);

                          


  XmlNode root = xn2.FirstChild;
                                XmlElement xesub1 = doc.CreateElement("SITENAME");
                                xesub1.InnerText = strA;//设置文本节点
                                xn2.InsertBefore(xesub1,xn2.FirstChild);//插入节点

<think>我们有两个主要方法:使用XmlDocument(传统方法)和使用LINQtoXML(更现代的方法)。根据引用内容,我们可以参考这两种方式。目标:将节点追加到XML文档的末尾。方法1:使用XmlDocument(传统DOM方式)步骤:1.加载XML文档。2.获取根节点(或要添加到的父节点)。3.创建节点。4.将节点作为最后一个子节点添加到父节点下。5.保存文档。方法2:使用LINQtoXML(XDocument)步骤:1.加载XML文档。2.获取根节点(或要添加到的父节点)。3.创建节点(XElement)。4.使用Add方法将节点添加到父节点的子节点集合中(默认追加到末尾)。5.保存文档。注意:在LINQtoXML中,Add方法默认将节点添加为最后一个子节点。参考引用:引用[2]展示了XmlDocument的基本用法(加载、获取节点等)。引用[4]展示了使用XDocument创建XML添加节点的方法。下面分别给出两种方法的代码示例。</think>### C# 中向 XML 末尾追加节点的两种方法 #### 方法 1:使用 **`XmlDocument`**(传统 DOM 方式) ```csharp // 加载 XML 文档 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("file.xml"); // 获取根节点 XmlElement root = xmlDoc.DocumentElement; // 创建节点 XmlElement newNode = xmlDoc.CreateElement("NewNode"); newNode.SetAttribute("id", "100"); // 添加属性 newNode.InnerText = "追加内容"; // 设置文本 // 将节点追加到根节点末尾 root.AppendChild(newNode); // 保存修改 xmlDoc.Save("file.xml"); ``` **关键点**: - `AppendChild()` 方法将节点添加为父节点的**最后一个子节点**[^2] - 适用于 .NET Framework 早期版本(3.0 及以下) #### 方法 2:使用 **LINQ to XML**(推荐,更简洁) ```csharp // 加载 XML 文档 XDocument xDoc = XDocument.Load("file.xml"); // 获取根节点 XElement root = xDoc.Root; // 创建节点并追加到末尾 root.Add(new XElement("NewNode", new XAttribute("id", "100"), // 添加属性 "追加内容" // 设置文本 )); // 保存修改 xDoc.Save("file.xml"); ``` **关键优势**: - `Add()` 方法默认将节点追加到子节点列表末尾[^4] - 支持链式语法,代码可读性更高 - 适用于 .NET Framework 3.5+ 和 .NET Core --- ### 关键区别对比 | 特性 | `XmlDocument` | LINQ to XML (`XDocument`) | |---------------------|-----------------------------------|----------------------------------| | **代码简洁度** | 冗长(需显式创建节点) | 简洁(支持声明式语法) | | **命名空间** | `System.Xml` | `System.Xml.Linq` | | **性能** | 较高内存消耗 | 更优内存管理 | | **操作方式** | 基于 W3C DOM 标准 | 函数式编程风格 | | **推荐场景** | 兼容旧版 .NET 项目 | 项目首选 | > **实践建议**: > - 项目优先使用 LINQ to XML(更简洁高效)[^4] > - 需要操作大型 XML 时,考虑使用 `XmlReader`/`XmlWriter` 流式处理 > - 使用 `root.Elements().Last().AddAfterSelf()` 可在特定位置插入节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值