将一个已知的XML放到XDocument 对象当中使用LINQ 查询非常的容易,下面是一个例子。
查找XML文档中的所有PERSONA元素显示结果个数,并遍历输出其值
public void MyDescendants() { XDocument xdoc = XDocument.Load(Server.MapPath("hamlet.xml")); //查找元素名为PERSONA 的元素 var query = from people in xdoc.Descendants("PERSONA") select people.Value; //people 是符合条件元素结果集 而people.Value;就是这个结果集的所有元素的值的序列 Response.Write(query.Count() + " 个玩家被找到。"); Response.Write("<p />他们是: <p />"); foreach (var item in query) { //输出他们的值 Response.Write( item + "<br />"); } }
通过URL 找到一个网络上的RSS XML文档,并查询。
public void MyRSS() { //通过下面的代码你可以看到一个简单的网页RSS阅读器 XDocument xdoc = XDocument.Load(@"http://www.cnblogs.com/TerryFeng/rss"); //找到channel元素集合 var query = from rssFeed in xdoc.Descendants("channel") select new { Title = rssFeed.Element("title").Value,//获取其下的title元素的值组成新结果集匿名对象的属性 Description = rssFeed.Element("description").Value,//获取其下的description元素的值组成新结果集匿名对象的属性 Link = rssFeed.Element("link").Value,//获取其下的link元素的值组成新结果集匿名对象的属性 }; foreach (var item in query) { Response.Write("博客: " + item.Title + "<br />"); Response.Write("描述: " + item.Description + "<br />"); Response.Write("地址: " + item.Link + "<br /><p />"); } //第二个查询,查询文档中的item元素,每个项目就是一个博客随笔 var queryPosts = from myPosts in xdoc.Descendants("item") select new { Title = myPosts.Element("title").Value, Published = DateTime.Parse( myPosts.Element("pubDate").Value), Description = myPosts.Element("description").Value, Url = myPosts.Element("link").Value, Comments = myPosts.Element("comments").Value, }; foreach (var item in queryPosts) { Response.Write("标题: " + item.Title + "<br />"); Response.Write("发布日期: " + item.Published + "<br />"); Response.Write("链接: " + item.Url + "<br />"); Response.Write("内容: " + item.Description + "<br />"); Response.Write("注释: " + item.Comments + "<br /><p />"); } Console.ReadLine(); }
冯瑞涛
分类:
[01] .Net X
【推荐】国内首个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 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?