[#39948] exit in Ruby/GTK window — NAWATE Masahiko <strike@...>

縄手@松江です.

31 messages 2004/08/10
[#39949] Re: exit in Ruby/GTK window — Masao Mutoh <mutoh@...> 2004/08/10

むとうです。

[#40526] procの動作について(質問) — "Hisashi Yahata" <yahatah@...> 2005/01/13

[#39973] 初心者向けの意見交換の場は?簡単な質問はどこにすればよいでしょうか。 — "Hisashi Yahata" <yahatah@...> 2004/08/26

60歳間近になった素人ですが、rubyに興味をもち、勉強を始めました。

[ruby-list:39964] XMLの配列のinclude?ができない?

From: Shun Fukuzawa <shfukuzawa@...>
Date: 2004-08-20 18:36:27 UTC
List: ruby-list #39964
はじめまして、ゆきちといいます。

今、rubyの手習いにrssを結合したデータを作ろうとしています。ぶっちゃけて
言えば、slashdot.jpから配信されているrssを全部結合して、生成しようとして
います。

で、以下のようにコードを書いてみました(ただし、未完成)が、一点うまくいか
ないところがあります。
----------------------------------------------------------------
#!/usr/bin/ruby -w -Ku

require 'open-uri'
require 'rexml/document'

include REXML

file = 'index.rdf'
max = 15

SLASH_NORMAL='http://slashdot.jp/slashdotjp.rss'
SLASH_ASK='http://slashdot.jp/askslashdot.rss'
SLASH_BOOK='http://slashdot.jp/books.rss'
SLASH_DEV='http://slashdot.jp/developers.rss'
SLASH_INT='http://slashdot.jp/interview.rss'
SLASH_KERNEL='http://slashdot.jp/linuxkernel.rss'
SLASH_MAC='http://slashdot.jp/mac.rss'
SLASH_MOB='http://slashdot.jp/mobile.rss'
SLASH_SCI='http://slashdot.jp/science.rss'
SLASH_SEC='http://slashdot.jp/security.rss'
SLASH_SLA='http://slashdot.jp/slash.rss'

    address =
[SLASH_NORMAL,SLASH_ASK,SLASH_BOOK,SLASH_DEV,SLASH_INT,SLASH_KERNEL,
               SLASH_MAC,SLASH_MOB,SLASH_SCI,SLASH_SEC,SLASH_SLA]

    d = Array.new
    address.each{|a|
    b = open(a)
    c = Document.new(b).root
    #d[]= (c.elements.to_a('//item'))
     c.elements.to_a('//item').each{|e|

     d << e unless d.inclide?(e)
     }
     }
     d.sort!{|s,t|
       s.elements['dc:date'].text <=>  t.elements['dc:date'].text
     }
     d.reverse!
     d.uniq!
     puts d
----------------------------------------------------------------

ここの、
>      d << e unless d.include?(e)
なのですが、slashdotから配信されているRSSは、全部で11ありまして、中に、
同じデータが含まれている場合があり、それを排除したいのですが、うまくいき
ません。同じく、
>      d.uniq!
もやってみているのですが、うまくいきません。

この
>     puts d
で、重複したデータも含めて出力されてしまいます。


もしかすると、もっと別の方法があるかも知れませんが、うまく、重複を排除で
きる方法があったら、教えてください。

In This Thread

Prev Next