新闻中心
C# 如何更新xml中某个节点的多个属性
使用XDocument可便捷更新XML节点属性。首先加载XML文件,通过Descendants查找目标节点,利用SetAttributeValue方法修改或添加属性,支持批量更新并自动处理属性存在性,最后保存文件。推荐此方式因语法简洁、操作直观,适用于多数场景。

在
C# 中更新 XML 文件中某个节点的多个属性,可以通过 System.Xml 命名空间中的 XDocument 或 XmlDocument 类来实现。以下是使用 XDocument 的推荐方式,简洁且易于操作。
1. 使用 XDocument 加载并修改节点属性
假设你有一个 XML 文件如下:
<Root> <Person Id="1" Name="Alice" Age="25" City="Beijing" /> </Root>
你想将 Name 改为 "Bob",Age 改为 "30",City 改为 "Shanghai"。
代码示例:
using System;
using System.Xml.Linq;
<p>// 加载 XML 文档
XDocument doc = XDocument.Load("test.xml");</p><p>// 查找目标节点,例如 Person 节点(可根据条件查找)
var person = doc.Descendants("Person").FirstOrDefault(x => x.Attribute("Id")?.Value == "1");</p><p>if (person != null)
{
// 更新多个属性
person.SetAttributeValue("Name", "Bob");
person.SetAttributeValue("Age", "30");
person.SetAttributeValue("City", "Shanghai");
}</p><p>// 保存回文件
doc.S*e("test.xml");
2. 批量更新多个属性的技巧
如果你需要一次性更新多个属性,可以封装成字典形式,简化代码:
var updates = new Dictionary<string, object>
{
{ "Name", "Bob" },
{ "Age", "30" },
{ "City", "Shanghai" }
};
<p>if (person != null)
{
foreach (var kvp in updates)
{
person.SetAttributeValue(kvp.Key, kvp.Value);
}
}
SetAttributeValue 方法会自动判断属性是否存在:存在则更新,不存在则添加。
千鹿Pr助手
智能Pr插件,融入众多AI功能和海量素材
128
查看详情
3. 如果使用 XmlDocument
传统方式也可用 XmlDocument,适用于较老项目:
using System.Xml;
<p>XmlDocument doc = new XmlDocument();
doc.Load("test.xml");</p><p>XmlNode person = doc.SelectSingleNode("//Person[@Id='1']");</p><p>if (person != null && person.Attributes != null)
{
person.Attributes["Name"].Value = "Bob";
person.Attributes["Age"].Value = "30";
person.Attributes["City"].Value = "Shanghai";
}</p><p>doc.S*e("test.xml");
注意要确保属性存在,否则会抛出异常。可先判断:person.Attributes["Name"] != null。
4. 注意事项
- 路径和条件要准确匹配目标节点,避免误改。
- 修改后记得调用 S*e 方法持久化到文件。
- 处理大型 XML 时注意性能,可考虑流式读取或分批处理。
- 建议操作前备份原始文件,防止数据丢失。
基本上就这些,使用 XDocument 更现代、简洁,适合大多数场景。
以上就是C# 如何更新xml中某个节点的多个属性的详细内容,更多请关注其它相关文章!
# 可以通过
# 百度网站优化排名素材库
# 儿童节营销推广活动策划
# 加盟品牌推广网站
# 霍州网站优化seo推广服务
# 网站建设与规划检测设备
# seo优化建议
# 林芝网站优化公司
# 下城企业营销推广
# 三门峡网站建设推广渠道
# 邢台seo公司
# 中文网
# c#
# 相关文章
# 你有
# 如果你
# 如何实现
# 加载
# 适用于
# 多个
# 数据丢失
# ai
# node
# xml
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
小红书商家版怎样在笔记嵌入商品卡路径_小红书商家版在笔记嵌入商品卡路径【挂载教程】
Yandex官网搜索引擎免登录_俄罗斯Yandex一键直达入口
小猿搜题在线学习页面在哪_小猿搜题在线学习中心入口
sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南
Spring Boot嵌入式服务器与J*a EE:功能支持深度解析
Node.js 中使用 node-cron 实现定时 API 数据抓取与处理
拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法
58动漫网在线官方网 58动漫网正版动漫入口网址
React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性
深入理解J*a编译器的兼容性选项:从-source到--release
谷歌邮箱网页版官方页面入口 谷歌邮箱网页端快速访问
Lar*el的路由模型绑定怎么用_Lar*el Route Model Binding简化控制器逻辑
解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常
b站怎么看视频的弹幕数量_b站弹幕数量查看方法
Mudbox图层蒙版怎么用_Mudbox图层蒙版数字雕刻应用技巧
c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换
Lar*el DB::listen 事件中的查询执行时间单位解析
动漫花园资源网使用步骤_动漫花园资源网下载流程
字由网在线版登录地址 字由网网页版安全入口
J*aScript Promise链中如何正确终止后续.then执行并处理错误
Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口
必由学官方网站入口 必由学学生教师共用登录通道
Golang如何使用bytes.Split分割字节切片_Golang bytes切片分割方法
微信客户端如何收红包_微信客户端接收红包使用教程
学习通网页版官方登录 超星学习通电脑端入口指南
Sublime Text怎么显示空格和制表符_Sublime显示不可见字符设置
高德地图怎么看全景照片_高德地图全景照片浏览教程
vivo浏览器自带的下载器速度慢怎么办 vivo浏览器提升文件下载速度的技巧
J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题
虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作
Typer应用中动态命令行参数的解析与处理
探索高级语言到原生C/C++的转译:挑战与内存管理策略
京东单号查询入口_京东快递订单追踪入口
探索高级语言到C/C++的转译路径:以Go为例及内存管理策略
菜鸟取件码是什么怎么查 最全查询渠道汇总
如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略
css子元素高度不一致导致布局错位怎么办_使用align-items:stretch解决高度差异
高德地图公交到站提醒失败如何解决 高德提醒权限设置
使用J*aScript检测输入元素是否包含在特定类中
铁路12306官网网页端快速入口 铁路12306官方首页登录教程
NetBeans Ant项目:自动化将资源文件复制到dist目录的教程
Angular响应式表单:实现提交后表单及按钮的禁用与只读化
《主播少女的秘密账号迷宫》首支宣传片
动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道
jQuery Mask 插件中实现电话号码固定前导零的教程
iCloud登录入口网页版 苹果iCloud官网登录
Fabric Mod开发:在1.19.3+版本中正确添加自定义物品并管理物品组
必由学官方平台入口 必由学在线课堂登录地址
腾讯QQ邮箱官方网站_QQ邮箱网页版在线登录
AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看


2025-11-12
浏览次数:次
返回列表