C#怎么创建XML文档 XmlDocument使用方法
发布时间 - 2025-12-31 00:00:00 点击率:次XmlDocument 是 C# 中基于 DOM 模型操作 XML 的核心类,支持创建、修改、保存和查询;需手动添加声明与根节点,通过 CreateElement/AppendChild 构建结构,用 SetAttribute 添加属性,Save/Load 实现持久化,XPath 提供精准节点定位。
XmlDocument 是 C# 中用于创建、读取、修改和保存 XML 文档的核心类,属于 System.Xml 命名空间。它基于 DOM(文档对象模型),把整个 XML 加载到内存中,适合对 XML 进行随机访问和频繁修改的场景。
创建空的 XmlDocument 并添加根节点
新建一个 XmlDocument 实例后,需手动创建声明和根元素才能构成合法 XML:
- 调用
CreateXmlDeclaration("1.0", "utf-8", null)创建 XML 声明 - 用
CreateElement("根标签名")创建根节点 - 用
AppendChild()依次追加声明和根节点
示例代码:
XmlDocument doc = new XmlDocument();
XmlDeclaration decl = doc.CreateXmlDeclaration("1.0", "utf-8", null);
XmlElement root = doc.CreateElement("Books");
doc.AppendChild(decl);
doc.AppendChild(root);
向 XML 中添加子节点和属性
在已有节点上可继续添加子元素、文本内容或属性:
- 用
CreateElement()创建新元素,再用AppendChild()添加进父节点 - 用
CreateTextNode("内容")创建文本节点并附加到元素下(实现“元素内容”) - 用
CreateAttribute("name")创建属性,设置Value后通过SetAttributeNode()或直接用SetAttribute("name", "value")
例如为 Book 添加带 ID 属性和 Title 子节点:
XmlElement book = doc.CreateElement("Book");
book.SetAttribute("ID", "1");
XmlElement title = doc.CreateElement("Title");
title.AppendChild(doc.CreateTextNode("C# 编程入门"));
book.AppendChild(title);
root.AppendChild(book);
保存和加载 XML 文档
生成好结构后,用 Save() 方法写入文件或流;加载已有 XML 则用 Load() 或 LoadXml():
-
doc.Save("books.xml")—— 直接保存到文件(自动编码为 UTF-8) -
doc.Load("books.xml")—— 从文件加载完整 XML -
doc.LoadXml("—— 从字符串加载 ")Hello
查找和修改已有节点
常用查询方式有 GetElementsByTagName() 和 SelectNodes()/SelectSingleNode()(支持 XPath):
-
XmlNodeList books = doc.GetElementsByTagName("Book");—— 获取所有 Book 元素 -
XmlNode firstTitle = doc.SelectSingleNode("//Book/Title");—— 用 XPath 查找第一个 Title - 修改节点内容:
firstTitle.InnerText = "新标题"; - 删除节点:
firstTitle.ParentNode.RemoveChild(firstTitle);
注意:使用 XPath 需确保已引入 System.Xml.XPath,且文档结构清晰时推荐 XPath 提高定位精度。不复杂但容易忽略编码与节点层级关系。
# node
# 编码
# app
# c#
# NULL
# 命名空间
# xml
# 字符串
# 对象
# dom
# 加载
# 文档
# 已有
# 第一个
# 再用
# 点上
# 新建一个
# 则用
# code
# XPath
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
教你用AI润色文章,让你的文字表达更专业
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
bootstrap日历插件datetimepicker使用方法
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
高端网站建设与定制开发一站式解决方案 中企动力
Laravel如何记录自定义日志?(Log频道配置)
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
如何在云虚拟主机上快速搭建个人网站?
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
使用C语言编写圣诞表白程序
在线教育网站制作平台,山西立德教育官网?
node.js报错:Cannot find module 'ejs'的解决办法
如何基于云服务器快速搭建个人网站?
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
如何在建站主机中优化服务器配置?
Python文件操作最佳实践_稳定性说明【指导】
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
音响网站制作视频教程,隆霸音响官方网站?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
Python函数文档自动校验_规范解析【教程】
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
lovemo网页版地址 lovemo官网手机登录
PHP 500报错的快速解决方法
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
IOS倒计时设置UIButton标题title的抖动问题
网站制作企业,网站的banner和导航栏是指什么?
如何在万网主机上快速搭建网站?
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
如何安全更换建站之星模板并保留数据?
Laravel如何使用Vite进行前端资源打包?(配置示例)
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
Laravel如何实现数据库事务?(DB Facade示例)
如何为不同团队 ID 动态生成多个非值班状态按钮
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
nodejs redis 发布订阅机制封装实现方法及实例代码
如何在阿里云虚拟服务器快速搭建网站?
千库网官网入口推荐 千库网设计创意平台入口
Laravel怎么导出Excel文件_Laravel Excel插件使用教程
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
javascript如何操作浏览器历史记录_怎样实现无刷新导航


询;需手动添加声明与根节点,通过 CreateElement/AppendChild 构建结构,用 SetAttribute 添加属性,Save/Load 实现持久化,XPath 提供精准节点定位。