• ベストアンサー

RSS pubDate 変換モジュール

RSSリーダを勉強しています。 XML::RSSでpubDateを取り出したのはいいのですが、加工の仕方がわかりません。rss1.0、rss2.0とかに対応したものを自分なりに正規表現でやらないとダメなんでしょうか?いい方法やモジュールなどがあったら教えてください。 例 Thu, 1 Nov 2009 17:00:00 +0900 -> 2009年11月01日 17時00分

  • Perl
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • takahathi
  • ベストアンサー率100% (2/2)
回答No.1
gothfotu
質問者

お礼

参考にします。ありがとうございました。

関連するQ&A

  • RSSがgoo RSSリーダーV3で表示されない

    DBの内容をRSSで出力しgoo RSSリーダーで表示しようとさせていますが、うまくいきません。具体的にはgoo RSSリーダーでRSSサイトの登録はできるのですが、選択すると上のペイン(タイトルが表示されるところ)は空白で、下のペイン(内容が表示されるところ)はxmlのソースが生で表示されます。他のRSSサイトの表示は問題ありません。(インターネット/イントラネット) 出力方法はイントラサーバーのDB(Accessファイル)からASPがデータを成形後RSSファイルを出力させるものです。(下記に出力後のソースを記入します。一部データをハイフンでおきかえています) <?xml version="1.0" encoding="Shift_JIS"?> <rss version="2.0"> <channel> <title>更新情報RSS</title> <link>http://---.html</link> <description>---をチェック</description> <language>ja</language> <pubDate>Fri,2 Feb 2007 13:49:00 +0900</pubDate> <generator>------</generator> <item> <title>タイトル1</title> <link>http://---.html</link> <description>内容紹介1</description> <pubDate>Thu,1 Feb 2007 11:39:29 +0900</pubDate> </item> <item> <title>タイトル2</title> <link>http://---.html</link> <description>内容紹介2</description> <pubDate>Thu,1 Feb 2007 11:45:29 +0900</pubDate> </item> </channel> </rss> IE6.0でソースの表示はできるのでXML構造には問題ないと思います。アドバイスよろしくお願いします。

    • 締切済み
    • XML
  • RSS2.0の書き方

    自分のHPのRSSフィード(RSS2.0)を書いたのですが、RSSリーダー(RSSリーダーは既にある前提)で何故か読めません。どこが悪いのか、御指摘いただければ幸いです。 ・RSSフィード名:rss.xml(rss.txtで下記のものを作成して、utf-8に変換してから、拡張子を.txt -> .xmlに変更) ・TOPのHTMLファイルのheadタグ内に以下を記述して、RSSフィードの置いてある場所を指定 : <link rel="alternate" type="application/rss+xml" title="RSS" href="[RSSフィードのあるアドレス]" /> ・RSSフィードの内容: <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xml:lang="ja"> <channel> <title>[サイトのタイトル]</title> <link>[サイトのアドレス]</link> <description>[サイトの紹介、説明文]</description> <language>ja</language> <item> <title>[エントリーのタイトル]</title> <link>[エントリーのアドレス]<link> <guid isPermaLink="true">[エントリーのアドレス]</guid> <category>[エントリーのカテゴリー]</category> <pubDate>[作成日時]</pubDate> <description><[エントリーの紹介文]></description> </item> </channel> </rss> (注)[作成日時]は、Wed, 10 Mar 2010 23:32:13 +0900 のように記述しています。 以上なのですが、何が駄目なのでしょうか? よろしくお願い致します。

    • 締切済み
    • XML
  • RSS2.0を読み込みたいのですが。。。

    立て続けに申し訳ございません。 現在RSSリーダーを作成しているのですが、 RSS2.0のデータ読み込みをどのように行って よいかわからない状況です。 RSS1.0は下記サイトを参考にXML::RSSモジュールを使用して動作することができましたが、RSS2.0に関してはどのようなモジュール及びコードを記述してよいかわからない状況です。 サンプルコードがどこかに落ちていないかさがしましたが、見つからない状況で非常にこまっていおります。 http://allabout.co.jp/internet/cgiperl/ なにかヒントとなることでもいいのでご教授頂けないでしょうか?

    • ベストアンサー
    • Perl
  • XML::RSSモジュールインストールなしで使うのにローカルで使用可、サーバ上でエラー

    レンタルサーバを借りてサイトを運営しております。 このたび、RSSリーダを作ろうと思い、CPANからXML::RSSモジュールを落としてきました。 いろんなサイトを見まして、標準モジュールではないのでインストールが必要と書いてあり、落胆していましたが、 あるサイトに、 ./XML/RSS/というディレクトリを掘ってその中に格納すれば使える と書いてありましたので、 ローカル(Win32)でXML/RSSと2つフォルダを作り、 そのなかにRSS.pmをいれました。 すると使えません。 で、今度は、XMLというフォルダの中に直接RSS.pmを入れて使うと、 きちんと動きました。 レンタルサーバにFTPでアップすると、 どうしても500エラーが出ます。 いろいろコメントアウトして原因を探ると、 どうもuse XML::RSSでエラーが発生しているみたいなのです。 レンタルサーバはUNIXなので、 文字コードを変えたり、パーミッションを700,755,777,705,etc...と いろいろ設定しましたが動かず、どうしていいものかわかりません。 CGIやPerlについての知識があまりないのでどうしたらよいのかも全く見当がつきません。 過去の質問も見ましたが見当たりませんでした。 なんとしてもRSSリーダを完成させたいので、 どうぞよろしくお願い申し上げます。

    • ベストアンサー
    • Perl
  • RSSの表示速度に不満。

    WEB上でRSSを取得できて表示が可能なのですが、 その表示速度に不満があります。 はっきりいって遅い! perlでもPHPでもやはり表示速度には 問題があるのでしょうか? 当方が利用しているRSSのリーダーのモジュールは以下、 XML::RSS です。これって解析に時間がかかるモジュールなんでしょうか?

    • ベストアンサー
    • Perl
  • php rss取得方法

    こんにちは、rss取得方法を勉強中なのですが 下記phpでrssを取得しているのですが、$xml->entry[$i]['item']->titleなどで うまく表示されません。(外部phpからxoopsのpicoというモジュールのrssを取得しようとしています。) phpコード $rssurl = "url"; $xml = simplexml_load_file($rssurl); $num_of_data = 4; $outdata = ""; for ($i=0; $i<$num_of_data; $i++){ $outdata .= "<li>"; $outdata .= "<a href=\""; $outdata .= $xml->entry[$i]->link[href]; $outdata .= "\">"; $outdata .= $xml->entry[$i]['item']->title; $outdata .= "</a><br />\n"; $outdata .= "</li>"; } xmlの中身 SimpleXMLElement Object ( [@attributes] => Array ( [version] => 2.0 ) [channel] => SimpleXMLElement Object ( [title] => XOOPS Cube Site - pico [link] => http://localhost/xoops/modules/pico/ [description] => SimpleXMLElement Object ( ) [lastBuildDate] => Thu, 13 Dec 2012 02:52:29 +0100 [docs] => http://backend.userland.com/rss/ [generator] => XOOPS - pico [category] => TOP [webMaster] => admin@hotmail.co.jp [language] => ja [item] => Array ( [0] => SimpleXMLElement Object ( [title] => コンテンツ1 [link] => http://localhost/xoops/modules/pico/index.php/index.html [description] => 正式名称:NARUTO -ナルト概要:体内に九尾の妖狐を封印された落ちこぼれ忍者・うずまきナルトが、里一番の忍である火影を目指し、数々の試練を乗り越え成長していく物語。仲間との友... [guid] => http://localhost/xoops/modules/pico/index.php/index.html [pubDate] => Thu, 13 Dec 2012 02:52:29 +0100 [category] => アニメタイトル ) [1] => SimpleXMLElement Object ( [title] => ee [link] => http://localhost/xoops/modules/pico/index.php/content0003.html [description] => e [guid] => http://localhost/xoops/modules/pico/index.php/content0003.html [pubDate] => Thu, 13 Dec 2012 02:03:51 +0100 [category] => アニメタイトル ) [2] => SimpleXMLElement Object ( [title] => コンテンツ6 [link] => http://localhost/xoops/modules/pico/index.php/content0002.html [description] => コンテンツ2 [guid] => http://localhost/xoops/modules/pico/index.php/content0002.html [pubDate] => Thu, 13 Dec 2012 01:53:17 +0100 [category] => アニメタイトル ) ) ) )

    • 締切済み
    • PHP
  • Ruby RSSの文字置換について

    RubyでRSSリーダーを作成しているのですが、 読み込んだRSSのエンコード(utf-8)とプログラムのエンコード(cp932)が異なるため、 エラーが発生しました。 <プログラム> ------------------------------------------------------- # encoding: cp932 require 'open-uri' require 'rss' xml = nil open("http://codezine.jp/rss/new/20/index.xml") { |http|    xml = http.read } rss = RSS::Parser.parse(xml.force_encoding("utf-8")) puts "#{rss.channel.title.encode('cp932', 'utf-8')}"\ + "#{rss.channel.pubDate.strftime("%Y/%m/%d %X")}" rss.items.each do |item|    puts '--------------------------'    puts item.title.encode('cp932', 'utf-8')    puts item.pubDate.strftime("%Y/%m/%d %X")    puts item.description.encode('cp932', 'utf-8') end ------------------------------------------------------ <エラーメッセージ> ------------------------------------------------------ rss_r.rb:18:in `encode': U+2013 from UTF-8 to Windows-31J (Encoding::UndefinedConversionError) ------------------------------------------------------ 以下のサイトを参考にして文字を置換しようと思ったのですが、 http://qiita.com/yugo-yamamoto/items/0c12488447cb8c2fc018 rssはStringクラスではないため、trメソッドが使えません。 どのようにすれば文字を置換できるのか教えていただけますでしょうか。

    • ベストアンサー
    • Ruby
  • RSSのURLをチェック

    簡単なRSSリーダーを作っています。 フィードを追加するとき、RSSのURLかどうかをチェックしたいのですがどうすればいいのでしょうか? http://www.example.com/ だとダメ(false)で、 http://www.example.com/rss.xml だとOK(true)になるようにしたいのですが。 現在の環境はPHP4です。

    • ベストアンサー
    • PHP
  • phpのHTMLからのRSS linkタグ抽出

    こんにちは phpを使ってrssを配信している サイトのhtmlデータを取得し、 rssのリンクが書いてある<link>タグを抽出しようとしています。 preg_matchなどを使った抽出の時に使っている正規表現は一応、 |.*<link rel=[\"\']alternate[\"\'](.*rss.*xml.*)?>|s なのですが、上記のrss xmlという文字列の順序や、 rssのバージョンを考えずに取得できる方法、 タグ内の他の属性値、属性値の順序など、 人によって書き方が異なり、 取得が難しいです。 これ以外の、より簡単な取得方法や、抽出におけるよい正規表現を知っておられる方、 どうか抽出方法を教えていただけませんでしょうか?

  • PHPからのRSS出力について

    お世話になります。PHP初級です。 MySQLからデータを取得し、RSS(xml)出力したいと思い、何とか形になってきましたが、表示で問題が発生してしまいました。 データは30件程度入力してあります。 ・IE7 そのまま開くと一応正常(?)に表示。ただしブックマークすると     最初の1件しか記事が表示されない ・Firefox ブックマークは出来るが、記事の各タイトルが表示されない ・goo RSSリーダー 最初の1件しか記事が表示されない 以下ソースです。 <?php header ("Content-Type: application/xml; charset=euc-jp"); echo "<?xml version=\"1.0\" encoding=\"EUC-JP\"?>" . "\n"; echo "<rss version=\"2.0\">" . "\n"; echo "<channel>" . "\n"; echo "<title >タイトル RSS</title>" . "\n"; echo "<link>http://www.yahoo.co.jp</link>" . "\n"; echo "<description>RSS</description>" . "\n"; echo "<language>ja</language>" . "\n"; echo "<copyright>C</copyright>" . "\n"; echo "<managingEditor></managingEditor>" . "\n"; echo "<webMaster>000@0000.com</webMaster>" . "\n"; echo "<pubDate>" . "2009-02-26T00:00:00+0900" . "</pubDate>" . "\n"; echo "<lastBuildDate></lastBuildDate>" . "\n"; // ファイルインクルード include("設定ファイル"); // データベースへ接続 $conn = mysql_connect($host, $user, $pw) or die("データベース接続エラー"); mysql_select_db($db, $conn); // SQLを組み立て $sql = "SELECT * FROM テーブル LIMIT 0, 15"; // 結果セットを取得 $res = mysql_query($sql); // 取り出したデータを表示する while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { echo "<item>" . "\n"; echo "<title>" . $row["dtitlej"] . "</title>" . "\n"; echo "<link>" . "xxx.xml" . "</link>" . "\n"; echo "<description></description>" . "\n"; echo "<pubDate></pubDate>" . "\n"; echo "</item>" . "\n"; } echo "</channel>" . "\n"; echo "</rss>"; // 結果セットを破棄 mysql_free_result($res); // 接続解除 mysql_close($conn); ?> どこがどう悪いのか、どうしても分からず投稿しました。 何分RSS(xml)も初めてですので、どうかお助けください。

    • 締切済み
    • PHP

専門家に質問してみよう