可以频繁火山小视频访问太频繁RSS的XML链接吗?

51CTO旗下网站
XML数据读取方式性能比较
XML至少有四种常用人XML数据操作方式(好像java差不多),不过还没有实际比较过这些方式各有哪些特点或优劣。本文就为您做个比较,一起来看。
作者:佚名来源:| 14:52
几个月来,疑被SOA,一直在和xml操作打交道,SQL差不多又忘光了。现在已经知道,至少有四种常用人XML数据操作方式(好像java差不多),不过还没有实际比较过这些方式各有哪些特点或优劣。正好看到网上也没有这方面的实验,偶来总结一下。
测试开始先读取XML源,用一个比较大的rss文件链接,复制到项目bin/debug目录下。
Stream&xmlStream&=&new&MemoryStream(File.ReadAllBytes(path));&
一、XmlDocument 方式
static&IList&testXmlDocument()& &{& &var&doc&=&new&XmlDocument();& &doc.Load(xmlStream);& &var&nodeList&=&doc.DocumentElement.ChildN& &var&lstChannel&=&new&List&Object&(nodeList.Count&);& &foreach&(XmlNode&node&in&nodeList)& &{& &var&channel&=&new&{ &Title&=&node.SelectSingleNode(&title&).InnerText, &Link&=&node.SelectSingleNode(&link&).InnerText, &Description&=&node.SelectSingleNode(&description&).InnerText, &Content&=&node.SelectSingleNode(&content&).InnerText, &PubDate&=&node.SelectSingleNode(&pubDate&).InnerText, &Author&=&node.SelectSingleNode(&author&).InnerText, &Category&=&node.SelectSingleNode(&category&).InnerText &}; &lstChannel.Add(channel); &}& &return&lstC &} &
二、XPathNavigator 方式
static&IList&testXmlNavigator()& &{& &var&doc&=&new&XmlDocument();& &doc.Load(xmlStream);&& &var&nav&=&doc.CreateNavigator();& &nav.MoveToRoot();& &var&nodeList&=&nav.Select(&/channel/item&);& &var&lstChannel&=&new&List(nodeList.Count);& &foreach&(XPathNavigator&node&in&nodeList) &{ &var&channel&=&new&{ &Title&=&node.SelectSingleNode(&title&).Value, &Link&=&node.SelectSingleNode(&link&).Value, &Description&=&node.SelectSingleNode(&description&).Value, &Content&=&node.SelectSingleNode(&content&).Value, &PubDate&=&node.SelectSingleNode(&pubDate&).Value, &Author&=&node.SelectSingleNode(&author&).Value, &Category&=&node.SelectSingleNode(&category&).Value &}; &lstChannel.Add(channel); &} &return&lstC &} &
三、XmlTextReader 方式
static&List&testXmlReader() &{& &var&lstChannel&=&new&List();& &var&reader&=&XmlReader.Create(xmlStream);& &while&(reader.Read())& &&{& &if&(reader.Name&==&&item&&&&&reader.NodeType&==&XmlNodeType.Element)& &&{&&var&channel&=&new&Channel(); &lstChannel.Add(channel); &&while&(reader.Read()) &&{ &&if&(reader.Name&==&&item&)& &&if&(reader.NodeType&!=&XmlNodeType.Element)& &&switch&(reader.Name) &&{ &&case&&title&: &&channel.Title&=&reader.ReadString(); & &case&&link&: &channel.Link&=&reader.ReadString(); & &&case&&description&: &channel.Description&=&reader.ReadString(); & &case&&content&: &channel.Content&=&reader.ReadString(); & &&case&&pubDate&: &&channel.PubDate&=&reader.ReadString(); && &&case&&author&: &channel.Author&=&reader.ReadString(); && &case&&category&: &channel.Category&=&reader.ReadString(); && &default: & &}}}} &return&lstC &} &
四、Linq to XML 方式
static&IList&testXmlLinq() &{& &var&xd&=&XDocument.Load(xmlStream);& &var&list&=&from&node&in&xd.Elements(&channel&).Descendants(&item&)& &select&new& &{& &Title&=&node.Element(&title&).Value,& &Link&=&node.Element(&link&).Value,& &Description&=&node.Element(&description&).Value, &Content&=&node.Element(&content&).Value, &PubDate&=&node.Element(&pubDate&).Value, &Author&=&node.Element(&author&).Value, &Category&=&node.Element(&category&).Value &}; &return&list.ToList(); &
测试结果:
XmlDocment 47ms
XPathNavigator 42ms
XmlTextReader 23ms
Xml Linq 28ms
小结一下自己的认识,XmlDocument的操作基本按W3C的DOM操作方式,不过要将全部节点解析成对象加载到内存中,往往造成很大浪费。所以微软自己的编程规范也不推荐用它。这里由于读取了所有节点,可能因此性能和Navigator方式相差不大。在三种随机读取方式中,Xml Linq性能最高,只是方法名有点别扭。XmlTextReader方式是所谓的SAX,只读向前,无疑性能最高,不过实现上麻烦了不少,要比较精确的控制访问逻辑,也无法用匿名类存储数据。
.Net 3.5发布Xml Linq可以很好地取代前两种方式,通常情况下,最好用它。只有个别场合,如果对性能要求极高,或者读取Xml数据量太大不能一下子下载或读取到内存中,那就只好痛苦委身于XmlTextReader了。
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条头条头条热点热点
24H热文一周话题本月最赞
讲师:126562人学习过
讲师:52872人学习过
讲师:71694人学习过
精选博文论坛热帖下载排行
JBuilder 2006是一款强大的Java企业级开发平台,其集成了几乎所有的Java技术,涵盖了软件开发生命周期的各个过程。本书深入浅出地介绍了JBu...
订阅51CTO邮刊网站连接里面有时候提到RSS和XML1.0、2.0这是什么意思_百度知道
网站连接里面有时候提到RSS和XML1.0、2.0这是什么意思
我们有时候看一些新闻网站或者是比较大型的网站内容时候,比如“百度” 会看到比如“订阅RSS” 或者连接旁边标有XML1.0或XML2.0 这是什么意思。 代表什么 或是使用是什么技术?
我有更好的答案
为您推荐:
其他类似问题
您可能关注的内容
rss的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。RSS普及与数据库订阅
RSS普及与数据库订阅
本文属于知识普及文章,主要根据罗昭锋老师的讲课内容和网络资源整理而成,也结合个人使用经验。如果你已经熟悉RSS,请忽视本文。如果一直利用浏览器检索、阅读信息,请利用一下RSS,它会颠覆你获取信息的方式和阅读习惯,提供你更广的阅读视角,使你获取信息的方式更有效率。
一、 RSS基本概念
RSS(,也叫聚合内容)是一种描述和同步网站内容的格式。RSS可以是以下三个解释的其中一个:Really
Simple Syndication;RDF (Resource Description Framework) Site
Summary;Rich Site Summary。但其实这三个解释都是指同一种Syndication的技术。
二、RSS的作用
RSS服务能直接将最新的信息即时主动推送到读者桌面,使读者不必直接访问网站就能得到更新的内容。读者定制RSS后,只要通过RSS阅读器,就可看到即时更新的内容。
RSS可以避免利用浏览器阅读和E-mail订阅的弊端。浏览器阅读信息具有广告信息干扰、新旧信息标示不明确、容易漏掉重要信息、效率低下等弊端;E-mail订阅可以提高效率,但阅读相对不便。RSS能够订阅你所需要的多个平台的内容,一站式获取大量信息,不管是新闻、娱乐信息还是学习与工作的相关内容,都可以利用RSS来获取。RSS能够大大提升获取信息的效率,提升你的搜索能力乃至学习能力。
三、离线RSS阅读器和定制方法
RSS阅读器可以分为离线RSS阅读器和在线RSS阅读服。离线RSS阅读器主要是通过在本地安装一个客户端软件进行RSS阅读,比较好的有GreatNews、FeedDemon、看天下等,这两款软件被评价很高,曾经装过一个GreatNews,但是对于我这中文背景的电脑菜鸟而言,初步使用还是有点难度,当时也不了解RSS的超强优势,于是就卸载了。
离线RSS优点是比较稳定,缺点是在多台电脑使用会很不方便,阅读内容不同步,速度较慢,较为耗费本地资源。我个人不太推荐使用离线RSS阅读器。如果需要离线RSS定制,可参考以下方法:
1.首次使用前,先下载和安装一个RSS阅读器.
2.从网站提供的RSS服务中选择感兴趣的频道,复制频道的链接地址(URL);
3.运行RSS阅读器,从文件菜单中选择“添加新频道”,将链接地址(URL)粘贴到输入框中,再按照提示操作,即完成了一个频道的定制。
4.点击频道名即查阅随时更新的信息。
四、在线RSS阅读器和定制方法
在线RSS阅读是使用一个专门服务网站进行在线RSS阅读,而不用客户端程序,在线阅读器的好处是,不需要消耗客户端的资源,速度一般比较快,对于在不同地点阅读(比如公司和家中),可以不必进行多次配置,阅读的内容也可以保证是连贯和同步的。在线阅读器利用起来比较方便,已成为大多数RSS用户的首选。
目前比较好的在线阅读器有有道阅读、鲜果、抓虾、豆瓣九点等,三者各有支持者。罗老师推荐使用鲜果,利用了一下,感觉很好,于是继承老师分享的精神,继续推荐、普及。在线阅读器使用方法和离线阅读器类似,注册一个用户,选择感兴趣的频道,复制频道的链接地址(URL),将链接地址(URL)粘贴到“添加频道”输入框中,即可完成一个频道的定制。注:不同的阅读器,订阅略有不同,即使是同一阅读器,使用不同的浏览器订阅也会略有不同。以下以鲜果网RSS为例,介绍RSS利用方法。
五、鲜果网RSS定制
1 注册鲜果帐号并登录,类似于注册一个E-mail邮箱,比较简单。
查找RSS进行订阅。订阅的关键是查找到RSS源(订阅地址)。常见的RSS标示有RSS、XML、等,只要点这些标示,复制链接地址,将地址添加到“添加频道”输入框中,即可。如果看不到此类标示,可以通过百度搜索相关订阅地址,再复制链接地址即可。
3信息阅读和管理。如果订阅频道过多,可以通过“订阅管理”对频道进行管理,通过建立文件夹使频道更加清晰。通过一些快捷键可以使阅读更有效率,了解快捷键可以利用shift+?查阅。
下一篇文章
上一篇文章
下移阅读焦点
上移阅读焦点
展开/收缩文章
标记文章为已读/未读
下一个频道
上一个频道
六、数据库RSS订阅整理
目前,主要数据库大都支持RSS订阅,以下对一些常用的数据库RSS阅读进行了总结,欢迎参考。
数据库名称
期刊 RSS 订阅,在各期刊浏览页面提供链接
检索式 RSS 订阅,订阅链接在数据库的检索结果页面,右上角共享下的RSS源
期刊 RSS 订阅(百度查询地址),检索式 RSS 订阅(先登录后订阅)
期刊 RSS 订阅,在各期刊浏览页面提供链接;搜索结果页面有RSS链接,但不能利用。
检索式 RSS 订阅,订阅链接在数据库的检索结果页面,“创建RSS荟萃”
期刊 RSS 订阅,在各期刊浏览页面提供链接;主题订阅通过E-mail
期刊 RSS 订阅,在各期刊浏览页面提供链接; 主题订阅通过E-mail
期刊 RSS 订阅,在各期刊浏览页面提供链接;检索式 RSS 订阅,订阅链接在数据库的检索结果页面
Web of Science
检索历史、引文跟踪订阅,需要进行个性化登录后才能操作
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。php读取rss xml 百度新闻的源码下载_懒人程序
支付宝赞助帐号:
php读取rss xml 百度新闻的源码下载
php读取rss xml 百度新闻的源码下载
header( 'Content-Type: text/ charset=utf-8' );
error_reporting(E_ALL);
ini_set('display_errors', true);
include './Rss.php'; // include library
$Rss = new R // create object
$feed = $Rss->getFeed('/n?cmd=1&class=internet&tn=rss', Rss::XML);
foreach($feed as $item) {
echo "\n";
//echo "".date('Y-m-d', strtotime($item['date']))."\n";
// echo "Category: $item[category]\n";
// echo "\n$item[description]\n";
catch (Exception $e) {
echo $e->getMessage();
支持键盘 ← →
猜你喜欢&Guess You Like}

我要回帖

更多关于 java 频繁访问数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信