新闻中心
C#怎么使用LINQ to XML_C# LINQ to XML查询与操作教程
LINQ to XML 提供简洁高效的 XML 处理方式,支持创建、查询、修改和保存 XML 文档。通过 XElement 和 XDocument 可构建或加载 XML,结合 LINQ 语法实现节点查询与投影,支持属性筛选、命名空间处理,并可添加、更新、删除节点后保存到文件,适用于配置管理与数据交换场景。

LINQ to XML 是 C# 中处理 XML 数据的强大工具,它结合了 LINQ 的查询能力与 XML 文档操作的灵活性。相比传统的 XML 处理方式(如 XmlDocument),LINQ to XML 更加简洁、易读,并支持函数式编程风格。下面介绍如何使用 C# 进行常见的 XML 查询与操作。
创建和加载 XML 文档
你可以从字符串、文件或直接构建的方式创建 XML 文档。
示例:创建一个简单的 XML 文档
XElement books = new XElement("Books",
new XElement("Book",
new XAttribute("Id", "1"),
new XElement("Title", "C# 入门详解"),
new XElement("Author", "张三"),
new XElement("Price", "59.80")
),
new XElement("Book",
new XAttribute("Id", "2"),
new XElement("Title", "LINQ 实战"),
new XElement("Author", "李四"),
new XElement("Price", "68.00")
)
);
从文件加载 XML
XDocument doc = XDocument.Load("books.xml");
从字符串解析 XML
string xmlStr = @"<Books><Book Id='1'><Title>C# 高级编程</Title></Book></Books>"; XElement root = XElement.Parse(xmlStr);
使用 LINQ 查询 XML 数据
你可以使用标准 LINQ 查询语法筛选和投影 XML 节点。
查询所有书籍标题
var titles = from book in books.Elements("Book")
select book.Element("Title").Value;
<p>foreach (var title in titles)
{
Console.WriteLine(title);
}</p>查找价格大于 60 的书籍
var expensiveBooks = from book in books.Elements("Book")
let price = double.Parse(book.Element("Price").Value)
where price > 60
select new
{
Title = book.Element("Title").Value,
Price = price
};
<p>foreach (var b in expensiveBooks)
{
Console.WriteLine($"{b.Title}: {b.Price}");
}</p>通过属性查询特定书籍
短影AI
长视频一键生成精彩短视频
170
查看详情
var bookById = books.Elements("Book")
.Where(b => b.Attribute("Id")?.Value == "1")
.FirstOrDefault();
<p>if (bookById != null)
{
Console.WriteLine("找到书籍: " + bookById.Element("Title").Value);
}</p>修改和保存 XML

你可以添加、更新或删除节点,并将结果保存到文件。
添加新书籍
books.Add(new XElement("Book",
new XAttribute("Id", "3"),
new XElement("Title", "ASP.NET 核心开发"),
new XElement("Author", "王五"),
new XElement("Price", "75.00")
));
更新某本书的价格
var bookToUpdate = books.Elements("Book")
.FirstOrDefault(b => b.Element("Title")?.Value == "C# 入门详解");
if (bookToUpdate != null)
{
bookToUpdate.Element("Price").Value = "55.00";
}
删除某本书
var bookToDelete = books.Elements("Book")
.FirstOrDefault(b => (string)b.Attribute("Id") == "2");
bookToDelete?.Remove();
保存到文件
doc.S*e("updated_books.xml"); // 如果是 XDocument
// 或者
books.S*e("new_books.xml"); // 如果是 XElement 且需要根节点
处理命名空间
当 XML 包含命名空间时,查询需显式指定。
XNamespace ns = "http://example.com/books";
var booksWithNs = from book in root.Elements(ns + "Book")
select book.Element(ns + "Title").Value;
基本上就这些常用操作。LINQ to XML 让 XML 处理变得直观高效,适合配置文件、数据交换等场景。熟练掌握后能大幅提升开发效率。
以上就是C#怎么使用LINQ to XML_C# LINQ to XML查询与操作教程的详细内容,更多请关注其它相关文章!
# 相关文章
# seo付费吗
# 锅炉网站建设哪家好
# 直播教育网站建设
# 奉贤seo费用
# 河池个性化网站建设平台
# 短剧推广横屏素材下载网站
# 新华书店营销推广看法
# 网站推广的岗位
# seo 现在 效果
# 麒麟seo术语详解
# 中文网
# c#
# 适用于
# 数据交换
# 不带
# 加载
# 本书
# 文档
# 你可以
# .net
# 字符串解析
# 配置文件
# 工具
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Django通过AJAX异步上传图片并保存至模型的完整指南
J*aScript中安全有效地处理localStorage字符串数据
快手极速版在线观看 官方网页版登录地址
Node.js中HTML按钮与J*aScript函数交互的正确姿势
微信客户端如何收红包_微信客户端接收红包使用教程
在命令行怎么运行html项目_命令行运行html项目方法【教程】
AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看
抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明
在J*a项目里如何构建对象之间的契约_接口约束的实际落地
蛙漫官网漫画入口地址_蛙漫在线畅读无广告弹窗
poki网页游戏推荐_poki免费游戏平台入口
AO3最新入口2025公告_AO3中文官网合集
html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】
漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站
Lar*el 递归关系中排除指定分支的教程
解决Python单元测试中Mock异常方法调用计数为零的问题
解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException
sublime怎么覆盖插件的默认快捷键_sublime快捷键优先级与设置
如何提高微信支付的安全性_微信支付安全防护与设置建议
Python字典中优雅地迭代剩余元素的方法
必由学官方平台入口 必由学在线课堂登录地址
Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法
Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】
中兴Axon42Ultra怎样在文件App筛图_iPhone中兴Axon42Ultra文件App筛图【图片筛选】
Pygame教程:解决用户输入与游戏状态更新不同步问题
Bing引擎入口最新2025 Bing搜索免费官方登录
小红书网页版入口链接分享 小红书官网直接进
消息称三星明年 2 月正式发布 HBM4,与 SK 海力士同台竞技
React Router 嵌套组件中 URL 重定向问题的解决方案
windows10怎么关闭系统提示音_windows10彻底静音设置方法
解决macOS上安装pyhdf时‘hdf.h’文件缺失的编译错误
AO3官方镜像站点汇总 AO3同人作品网页版直达链接
快手网页版在线登录 快手网页版官网入口快速访问
Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】
如何更改在 Excel 中打开超链接时的默认浏览器
mysql如何设置表访问权限_mysql表访问权限配置
Mac怎么锁定备忘录_Mac备忘录加密设置教程
12306选座系统怎么选连座_12306选座多人连坐操作方法
Pandas DataFrame 多条件优先级排序与排名
2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示
sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南
Excel Power Pivot如何处理XML数据源 构建高级数据模型
cad如何更改注释性对象的比例_cad注释性比例调整方法
Win11怎么用U盘重装系统 Win11制作启动盘并重装系统完整教程【详解】
Python实时数据流中的动态最值查找策略
Win11怎么设置鼠标主按键_Win11鼠标左右键功能互换
J*a 递归快速排序中静态变量的状态管理与陷阱
处理Kafka消费者会话超时:深入理解消息处理语义与幂等性
C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件
押井守高度称赞《辐射4》:玩了八年都停不下来!


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