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 文档
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 节点。
查询所有书籍标题
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原生应用开发平台,简单几步即可完成应用的创建与发布。
84
查看详情
var bookById = books.Elements("Book")
.Where(b => b.Attribute("Id")?.Value == "1")
.FirstOrDefault();
<p>if (bookById != null)
{
Console.WriteLine("找到书籍: " + bookById.Element("Title").Value);
}</p>你可以添加、更新或删除节点,并将结果保存到文件。
添加新书籍
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教学视频
# 网站首页推广费用情况
# 高端网站建设专业公司
# 编程语言
# 数据交换
# 五种
# 加载
# 本书
# 文档
# 芝士
# 你可以
# 如何使用
# .net
# 字符串解析
# 配置文件
# c#
# 网站美观优化策略是什么
# 自主建设网站怎么建立
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
怎么恢复删除的电脑文件_数据恢复软件使用教程
申通快递查询 申通物流快递单实时查询入口
《全民k歌》网页版最新登录入口一览
视频号视频怎么免费保存到相册?保存到相册需要注意什么?
C++ switch case字符串_C++如何实现字符串switch匹配
《东方财富》条件单关闭方法
《偃武》甘宁技能详解
基于键值条件高效映射 Pandas DataFrame 多列数据
邮编号码查询app有哪些_邮编号码查询推荐app及使用体验
J*a里如何处理ArithmeticException并防止除零_算术异常防护策略解析
有道AI翻译入口 智能写作官方网站入口
C++怎么实现一个红黑树_C++高级数据结构与平衡二叉搜索树
菜鸟裹裹怎样获得取件码_菜鸟裹裹获得取件码步骤
b站怎么查看视频的码率_b站视频码率查看方法
铁路12306官网入口 铁路12306中国铁路官网登录首页
VS Code快捷键when上下文子句的妙用
126手机126邮箱登录_126邮箱手机登录入口官网
TikTok收藏夹无法删除视频如何解决 TikTok收藏管理优化方法
PSD转AI文件的简单方法
三星A55应用闪退排查步骤_Samsung A55稳定性优化技巧
米侠浏览器插件无法启用怎么办 米侠浏览器扩展兼容性修复
Win10如何关闭开机锁屏界面_Windows10跳过锁屏直接登录设置
魔法祈幻界兑换码礼包大全
花生壳内网映射新方案
智学网成绩单查询系统网_智学网学生平台登录
TikTok网页版实时观看入口 TikTok网页版短视频在线浏览
怎样设置开机后自动运行某个程序_Windows启动文件夹与任务计划【自动化】
j*a中赋值运算符是什么?
电脑视频号|直播|如何分享屏幕
如何在Podman容器中运行Composer_Docker替代品Podman的PHP与Composer容器化实践
Highcharts雷达图径向轴数值标签实现教程
Win11怎么设置分辨率 Win11显示设置调整分辨率及刷新率修改
sf漫画官网登录入口直达_sf漫画官方正版网址
嘀嗒顺风车如何开具电子发票
mysql镜像配置如何恢复数据_mysql镜像配置数据恢复详细流程
j*a中ArrayBlockingQueue的使用
AO3中文入口稳定分享_AO3官网HTTPS看文详解
小红书网页版在线直达 小红书网页版免费登录入口
泰拉瑞亚网页版在线登录入口 泰拉瑞亚官方正版入口
使用Google服务账号实现Google Drive API无缝集成与文件访问
c++类和对象到底是什么_c++面向对象编程基础
word表格如何按某一列内容进行排序_Word表格按列排序方法
Golang如何使用gRPC拦截器实现日志收集_Golang gRPC拦截器日志收集实践
iPhone 13 mini如何清理Safari缓存_iPhone 13 mini浏览器缓存清理方法
如何查询个人病历记录
word怎么将图片设置为页面背景并不影响打印_Word图片背景设置方法
海棠书屋官方在线书籍入口 海棠书屋文学作品浏览官网链接
iPhone14开启Apple TV遥控设置
使用 .htaccess 正确配置 WordPress 子目录重定向与路径保留
《海豚家》注销账号方法
2025-11-01
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。