惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
Schneier on Security
Schneier on Security
B
Blog RSS Feed
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
A
About on SuperTechFans
Recorded Future
Recorded Future
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
Hugging Face - Blog
Hugging Face - Blog
The GitHub Blog
The GitHub Blog
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
Vercel News
Vercel News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
V2EX - 技术
V2EX - 技术
N
Netflix TechBlog - Medium
F
Fortinet All Blogs
V
Visual Studio Blog
Martin Fowler
Martin Fowler
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
The Exploit Database - CXSecurity.com
F
Full Disclosure
Scott Helme
Scott Helme
H
Heimdal Security Blog
博客园 - 叶小钗
Google DeepMind News
Google DeepMind News
Cyberwarzone
Cyberwarzone
Application and Cybersecurity Blog
Application and Cybersecurity Blog
V
Vulnerabilities – Threatpost
Blog — PlanetScale
Blog — PlanetScale
Security Latest
Security Latest
WordPress大学
WordPress大学
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Troy Hunt's Blog
S
SegmentFault 最新的问题
Forbes - Security
Forbes - Security
Jina AI
Jina AI
S
Securelist
小众软件
小众软件
Simon Willison's Weblog
Simon Willison's Weblog
J
Java Code Geeks
AWS News Blog
AWS News Blog
N
News and Events Feed by Topic
博客园 - 三生石上(FineUI控件)
量子位

博客园 - miao~

C# 截取1位小数 ASP.NET 获取MSN联系人列表 扩展老赵的 直接通过User Control生成HTML 分页功能 小技巧在Repeater控件中找到对应模板内的控件 大型互联网网站架构心得之一:分 UML 序列图 sql存储过程教程 Create an ASP.NET AJAX Style Folder Explorer BS程序代码与安全与基本攻击/防御模式 利用 .NET 3.5 的 Syndication 相关类生成 RSS RSS2.0规范 利用 .NET 3.5 的 Syndication 相关类读取 RSS Feeds 代码设计简单规范 VS.PHP 在Visual Studio 下的 PHP 开发 IDE 工具 窥探jQuery——面向JavaScript程序员 开发一个适合Ajax+JSON+jQuery环境使用的多功能页码栏——jPagerBar-1.1.1 最实用的12条css技巧 不错的下拉列表.HTML控件和服务器控件都可以使用 两个粒度看Asp.net生命周期
使用linq to xml 快速创建自己的Rss
miao~ · 2008-05-26 · via 博客园 - miao~

首先引用网络上不知道是谁的一段文字来讲述下什么是linq to xml 如果已经熟悉的就直接跳过这段: 

LINQ to XML是一种启用了 LINQ 的内存 XML 编程接口,使用它,可以在 .NET Framework编程语言中处理XML

  它将 XML 文档置于内存中,这一点很像文档对象模型 (DOM)您可以查询和修改 XML 文档,修改之后,可以将其另存为文件,也可以将其序列化然后通过网络发送。但是,LINQ to XML DOM 不同:它提供一种新的对象模型,这是一种更轻量的模型,使用也更方便,这种模型利用了 Visual C# 2008 在语言方面的改进。

  LINQ to XML 最重要的优势是它与 Language-Integrated Query (LINQ) 的集成。由于实现了这一集成,因此,可以对内存 XML 文档编写查询,以检索元素和属性的集合。 LINQ to XML 的查询功能在功能上(尽管不是在语法上) XPath XQuery 具有可比性。 Visual C# 2008 集成 LINQ 后,可提供更强的类型化功能、编译时检查和改进的调试器支持。

  通过将查询结果用作 XElement XAttribute 对象构造函数的参数,实现了一种功能强大的创建 XML 树的方法。这种方法称为函数构造,利用这种方法,开发人员可以方便地将 XML 树从一种形状转换为另一种形状。

  LINQ to XML 提供了改进的 XML 编程接口,这一点可能与 LINQ to XML LINQ 功能同样重要。通过 LINQ to XML,对 XML 编程时,您可以实现任何预期的操作,包括:

·                                   从文件或流加载 XML

·                                   将 XML 序列化为文件或流。

·                                   使用函数构造从头开始创建 XML

·                                   使用类似 XPath 的轴查询 XML

·                                   使用 AddRemoveReplaceWith SetValue 等方法对内存 XML 树进行操作。

·                                   使用 XSD 验证 XML 树。

·                                   使用这些功能的组合,可将 XML 树从一种形状转换为另一种形状。

好了,我开始废话,首先说一下呢,我技术平平,写出来的文章自然也是不怎么高水平的,但是都是我自己实际项目中总结出来的。
错误之处还请大家指正,转载的朋友请注明出处:
『半途』

现在言归正传说我们的正题

首先我们创建一个新窗体,这里以我的网站为例,我们起名叫Rss.aspx

创建完成后,如果Rss数据源是XML实际文档,就跳过下面一步,如果Rss数据源是aspx文件

请在创建完新页面后切换到源视图

保留这一行:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Rss.aspx.cs" Inherits="Rss" %>

其余的html代码全部删除

然后在cs里创建方法createRss()

具体看代码和注释:

public void createRss()

    {

        //首先从数据库里读出所需要的数据

        XXXXContext bd = new XXXXContext();

        var sq = from p in bd.news orderby p.ID descending select new { p.ID, p.title,p.cont, p.in_date,p.n_type };

        //开始创建xml 对于Rss的规范我这里不再啰嗦了,不明白的可以去网上查一下

        //下面这一部分为xml里的声明部分,从foreach开始循环item,把sq的数据循环写入xml

        XElement contacts = new XElement("rss", new XAttribute("version", "2.0"),

                   new XElement("channel",

                       new XElement("title", "半途的Rss"),

                       new XElement("link", "http://www.bantool.cn"),

                       new XElement("description", "C#,linq,vs2008"),

                       new XElement("language", "zh_cn"),

                       new XElement("copyright", "Copyright 2008 bantool"),

                       new XElement("webMaster", "ziie@tom.com")));

         //这里开始循环写数据

        foreach (var p in sq)

        {

            contacts.Element("channel").Add(new XElement("item",

                             new XElement("title", p.title),

                             new XElement("link", "http://www.bantool.cn/news" + p.ID + ".bantool"),

                             new XElement("description", p.cont),

                             new XElement("category", p.n_type),

                             new XElement("pubDate", p.in_date)));

        }

        //这里开始操作xml是写入具体的xml文件还是直接输出

        //如果是写入文件的话用这个

        //contacts.Save("文件路径");

        //如果是输出的諙,

        //先设好输出的类型"text/xml"

        Response.ContentType = "text/xml";

        using (XmlWriter writer = new XmlTextWriter(Response.OutputStream, Encoding.UTF8))

            //用contacts的WriteTo方法来写

            contacts.WriteTo(writer);

        //这样就OK啦

}   

好了,这个样子就完成了,看我们的linq多么强大!呵呵

如果有错误还请大家指正,不明白的地方请提出来大家讨论

演示地址:http://www.bantool.cn/Rss.aspx

转载:

http://www.cnblogs.com/ziie/archive/2008/05/26/1207207.html