C# 怎么获取xml节点的属性值

月夜之吻
发布: 2025-10-27 13:11:02
原创
513人浏览过
答案:C#中获取XML节点属性值常用XmlDocument和XDocument。1. XmlDocument通过SelectSingleNode定位节点,用Attributes["属性名"]获取值,适用于旧项目;2. XDocument使用Attribute("属性名")?.Value语法更简洁,推荐现代项目使用;3. 建议用?.操作符避免空引用异常,属性存在时取值,不存在返回null;4. 可从文件加载或字符串解析XML,根据需求选择合适方法。

c# 怎么获取xml节点的属性值

在 C# 中获取 XML 节点的属性值,常用的方法是使用 XmlDocumentXDocument(LINQ to XML)。下面介绍两种方式的具体用法。

使用 XmlDocument 获取属性值

适用于较老的 .NET Framework 项目,操作方式类似 DOM。

步骤如下:

  • 加载 XML 文档
  • 通过 SelectSingleNode 或 GetElementsByTagName 定位节点
  • 使用 Attributes 属性获取指定属性的值

示例代码:

using System;
using System.Xml;
<p>XmlDocument doc = new XmlDocument();
doc.Load("test.xml"); // 或 LoadXml("<book id='101' price='25.5'>C# Guide</book>");</p><p>XmlNode node = doc.SelectSingleNode("/book");
if (node != null && node.Attributes["id"] != null)
{
string id = node.Attributes["id"].Value;
string price = node.Attributes["price"]?.Value; // 可空属性建议用 ?
Console.WriteLine($"ID: {id}, Price: {price}");
}
登录后复制

使用 XDocument (LINQ to XML) 获取属性值

推荐用于现代 C# 项目,语法更简洁,支持 LINQ 查询。

使用 XElement.Attribute("属性名").Value 或更安全的 Attribute("属性名")?.Value

造点AI
造点AI

夸克 · 造点AI

造点AI 325
查看详情 造点AI

示例代码:

using System;
using System.Xml.Linq;
<p>XDocument xDoc = XDocument.Load("test.xml"); // 或 Parse 字符串
// 示例 XML: <book id="101" price="25.5">C# Guide</book></p><p>XElement book = xDoc.Root;
string id = book.Attribute("id")?.Value;
string price = book.Attribute("price")?.Value;</p><p>if (!string.IsNullOrEmpty(id))
{
Console.WriteLine($"ID: {id}, Price: {price}");
}
登录后复制

注意事项

  • 访问属性前务必判断属性是否存在,避免 NullReferenceException
  • 使用 ?. 操作符可以安全取值,属性不存在时返回 null
  • 如果属性是必需的,可使用 Attribute("name").Value,但要确保一定存在,否则抛异常
  • 支持从字符串解析 XML,也可直接读文件

基本上就这些,根据项目选择合适的方式。XDocument 更现代简洁,XmlDocument 兼容性好。

以上就是C# 怎么获取xml节点的属性值的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号