今天由于项目原因,需要用C#解析Xml文件,由于使用的是3.5的framework,所以想到拿Linq to xml试试水。于是按着MSDN上的作法自己试了一下

Code
XElement root = XElement.Load("ProjectSoruce.xml");
IEnumerable<XElement> Resources =
from el in root.Descendants("Task")
select el;
foreach (XElement el in Resources)
Console.WriteLine(el);结果根本取不到Task元素。一头雾水,而MSDN上翻来覆去就那么几个例子。反复调试了一个小时,后来终于发现,原来我的XML有命名空间,而Linq To XML查询时,需要把这个命名空间也带上。代码应该这样写
@"http://schemas.microsoft.com/project"; 是我自己的XML上带的命名空间

Code
XNamespace ns = @"http://schemas.microsoft.com/project";
XElement root = XElement.Load("ProjectSoruce.xml");
IEnumerable<XElement> Resources =
from el in root.Element(ns + "Tasks").Elements(ns + "Task")
select el;
foreach (XElement el in Resources)
Console.WriteLine(el);
//Pause the application
Console.ReadLine();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
2006-11-03 原来2.0里实现数据绑定控件这么简单!
2006-11-03 这段代码,我写一次,就要上网找一次,决定把他们记下来!
2006-11-03 一个日期选择控件,(半原创)