RssReader

转载 2006年06月07日 21:43:00

// Copyright (c) 2006 Robin Schuil (http://lunchpauze.blogspot.com, http://www.sayoutloud.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// VERSION 0.1

Ajax.RssReader = Class.create();
Ajax.RssReader.prototype = Object.extend(new Ajax.Request(), {
 
 initialize : function( url, options ) {
  
  options = options || {};
  
  this.setOptions(options);
  
  this.items = {};

  var onSuccess = this.options.onSuccess || Prototype.emptyFunction;
  var onFailure = this.options.onFailure || Prototype.emptyFunction;
  
  this.options.onSuccess = (function(t) { if( this.onSuccess(t) ) { onSuccess(this); } else { this.onFailure(t); onFailure(this); } }).bind(this);
  this.options.onFailure = (function(t) { this.onFailure(t); onFailure(this); }).bind(this);
  
  this.request( url );

 },
 
 onSuccess : function( t ) {
  
  try {
   var node = t.responseXML;
   var xmlChannel = node.getElementsByTagName('channel').item(0); 
  }
  catch(e) {
   return false;
  }
  
  this.channel = {
   title:      this._getElementValue(xmlChannel, 'title'),
   link:      this._getElementValue(xmlChannel, 'link'),
   description:  this._getElementValue(xmlChannel, 'description'),
   language:    this._getElementValue(xmlChannel, 'language'),
   copyright:   this._getElementValue(xmlChannel, 'copyright'),
   managingEditor: this._getElementValue(xmlChannel, 'managingEditor'),
   webMaster:   this._getElementValue(xmlChannel, 'webMaster'),
   pubDate:    this._getElementValue(xmlChannel, 'pubDate'),
   lastBuildDate: this._getElementValue(xmlChannel, 'lastBuildDate')
  };
  
  this.items = new Array();
  
  var xmlItems = xmlChannel.getElementsByTagName('item');

  for (var n=0; n<xmlItems.length; n++) {
   
   var xmlItem = xmlItems[n];
   
   var item = {
    title:    this._getElementValue(xmlItem, 'title'),
    link:     this._getElementValue(xmlItem, 'link'),
    description: this._getElementValue(xmlItem, 'description'),
    author:    this._getElementValue(xmlItem, 'author'),
    category:   this._getElementValue(xmlItem, 'category'),
    comments:   this._getElementValue(xmlItem, 'comments'),
    guid:     this._getElementValue(xmlItem, 'guid'),
    pubDate:   this._getElementValue(xmlItem, 'pubDate')
   };
   
   this.items.push( item );
         
  }
  
  return true;
    
 },
 
 onFailure : function( t ) {
  
 },
 
 _getElementValue : function( node, elementName ) {
  
  try {
   var value = node.getElementsByTagName(elementName).item(0).firstChild.data; 
  }
  catch(e) {
   var value = '';
  }
  
  return value;
  
 }
 
});

//应用

function myCallback( rss ) {
    alert(rss.channel.title);
    for(var n=0; n<rss.items.length; n++) {
        alert(rss.items[n].title);
    }
}

function errorHandler( rss ) {
   alert('An error has occured');
}

new Ajax.RssReader( 'test.xml', { onSuccess: myCallback, onFailure: errorHandler } );

相关文章推荐

VisualSVN 通用破解方法

本文来自网络:http://www.biglee.cn/blog/article.asp?id=203 一、VisualSVN 通用破解方法 1. http://www.visualsvn.c...

RSSReader的代码

  • 2016-06-14 16:20
  • 669KB
  • 下载

RSSReader_Java

  • 2014-11-08 20:18
  • 13.98MB
  • 下载

RssReader 阅读器

  • 2010-01-13 18:40
  • 128KB
  • 下载

RssReader 好软件呀好软件

  • 2007-12-17 22:27
  • 39KB
  • 下载

rssReader 阅读器 C#版

  • 2010-08-21 02:17
  • 475KB
  • 下载

mini_rssreader

  • 2007-07-22 21:01
  • 108KB
  • 下载

RssReader Rss阅读器

  • 2013-01-15 19:26
  • 548KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)