894064 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

鶏が口だけでも飛び立ちます

鶏が口だけでも飛び立ちます

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Keyword Search

▼キーワード検索

Profile

Solis

Solis

Calendar

Comments

effelpist@ kilovermek.es effelpist <a href="https://kilovermek.es/…
http://buycialisky.com/@ Re:TinyURLのようなRedirectionの仕組み(06/30) viagra cialis predamdiferencias entre e…
http://viagraiy.com/@ Re:TinyURLのようなRedirectionの仕組み(06/30) cialis viagra ou levita <a href=&qu…
ジャピーノ@ フィリピンペソなど興味無し 日本でビジネスの手腕が発揮できない者は…
KJN@ MagpieRSSでRSSをHTMLに展開する方法を教えてください。 こんにちは! 最近はwordpressを使って、…
とおりすがり@ たしかに・・・。 この会社の社長さんはすばらしいかたです…
どぴゅ@ みんなホントにオナ鑑だけなの? 相互オナって約束だったけど、いざとなる…
お猿@ やっちまったなぁ! http://feti.findeath.net/rue-oo1/ ちょ…
もじゃもじゃ君@ 短小ち○こに興奮しすぎ(ワラ 優子ちゃんたら急に人気無い所で車を停め…
リナ@ 今日は苺ぱんちゅ http://kuri.backblack.net/ps82ouo/ 今…

Recent Posts

Archives

2024.10
2024.09
2024.08
2024.07
2024.06
2024.05
2024.04
2024.03
2024.02
2024.01

Category

Favorite Blog

寒い New! にわとりのあたまさん

遍路と農業とFXの… おばか社長さん
田舎で!情報起業 … 田舎っぽ こと 関根雅泰さん
パンラヤー(妻)は… samo1965さん
アサワ(妻)はフィ… マハルナさん
     さ.ゆ.り.… さゆり1995さん
2008.09.06
XML
カテゴリ:ソフトウェア
仕事で、RubyのREXMLというXMLを扱うライブラリを使ってみたので、
RSSで広告をカットするCGIを作ってみました。

RSSのタイトルで"AD:"や"PR:"となっているRSSのアイテムを消します。
ただうまく動かないことがあるので、、、なんでだろう。
数時間で作ってみましたので、うまくうごかない場合はすみません。

使用方法は、RubyとCGIを使ってことのある方前提です。
習作なのでうまく動かなかったらすみません。

サンプルプログラムは、
http://solisart.com/rss/?uri=(RSSのURI) で動きます。

例:
http://solisart.com/rss/?uri=http://slashdot.jp/slashdotjp.rss

(本当はGoogle Reader上のGrease Monkeyで作りたかった)

---------------------------------------------------------
#!/usr/local/bin/ruby

require 'cgi'
require 'open-uri'
require 'rexml/document'
# これはXMLで脆弱性が見つかったためのパッチです。
require 'rubygems'
require "rexml-expansion-fix"

cgi = CGI.new

uri = cgi.params['uri'][0]

rss = open(uri).read

doc = REXML::Document.new(rss)

# 広告のItemをリストとして取り出します
adxpath_list = []
doc.elements.each("*/channel/item/title") do |element|
if element.text['AD:'] or element.text['PR:']
adxpath_list << element.xpath.gsub(/\/title$/, "")
end
end

# 広告のItemを上から何番目というのを指定するのですが、前の方から消すと順位が変わってしまいます。そのため後ろから消すことにしました。
adxpath_list.reverse.each do |xpath|
REXML::XPath.first(doc, xpath).remove
end

# スタイルシートがローカルで指定してある場合があるとエラーになる場合があります
output = doc.to_s.sub(/<\?xml-stylesheet[^>]*>/, '')
cgi.out( {'type' => 'application/xml'} ) { output }

---------------------------------------------------------






お気に入りの記事を「いいね!」で応援しよう

Last updated  2008.09.07 21:36:54
コメント(0) | コメントを書く



© Rakuten Group, Inc.
X