• 締切済み

RSS2.0でitemが空の場合の記述

RSSフィールド(RSS 2.0)を出力するWebアプリを作成しています。 itemが0件の場合はfirefoxのライブブックマークで 「読み込みに失敗しました」 になります。 itemは次のように記述しています。 <items /> goo blogのRSSは、firefoxで"(空)"と表示されます。 中身を見ると、 <items> <rdf:Seq /> </items> と出力しています。ただし、RSS1.0です。 RSS2.0でitemが空の場合、どのように書けばよいでしょうか?

  • XML
  • 回答数1
  • ありがとう数11

みんなの回答

  • aton
  • ベストアンサー率47% (160/334)
回答No.1

参考URLを見る限り <items> という要素は RSS 2.0 には存在しないようなのですが。 <item> の間違いでしょうか? だとすると,参考URLを見る限り,<item> は tRssItem 型で,tRssItem型の定義では,中身の要素は全て minOccurs="0" なので,定義的には, <item /> でいいのではないでしょうか? <item> の間違いでないとすると,単に RSS 2.0 には <items> という要素がないので,書かなければいいだけではないでしょうか?

参考URL:
http://www.thearchitect.co.uk/schemas/rss-2_0.xsd

関連するQ&A

  • スクリプトの解説してもらいたいのですが・・

    このRSSを生成するスクリプトを翻訳して欲しいというか、解説してもらいたのです・・・勉強しろ!と怒られるかもしれませんが、何とか教えていただければ助かります。 ====================== $item_title = "dt"; #タイトルとリンクを抜き出す要素 $item_descr = "dd"; #説明文を抜き出す要素 $host = "http://your.domain"; #ソースからタイトル、リンク、説明文を抽出 while(<>){ if(m|<${item_title}.*?><a href="(.*?)">(.*?)</a>|){ $link[++$items] = $1; $items_list .= qq( <rdf:li rdf:resource="$host$1"/>\n); $title[$items] = $2; $isItem = 1; }elsif(m|<${item_descr}.*?>(.*?)</${item_descr}>| and $isItem){ $str = $1; $str =~ s/<.*?>//g; #不要なマークアップを削除 $descr[$items] = $str; $isItem = 0; #説明文は1要素だけにしておく } } #以下、RSSの構文に従って出力 print <<EOF; <?xml version="1.0" encoding="utf-8" ?> <rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xml:lang="ja"> <channel rdf:about="http://your/rss/file"> <title>Your Channel Title</title> <link>http://your/home/page</link> <description>Your channel description</description> <items> <rdf:Seq> $items_list </rdf:Seq> </items> </channel> EOF for $i (1..$#link){ print <<EOF; <item rdf:about="$host$link[$i]"> <title>$title[$i]</title> <link>$host$link[$i]</link> <description>$descr[$i]</description> </item> EOF } print "</rdf:RDF>\n";

  • RSSファイルの拡張子はどれが正しいのですか?

    RSSをサイトに導入しようとしています。 RSSファイルには、 「.rss」 「.rdf」 「.xml」 の3種類くらいあると思いますが、 どういう違いがあるのでしょうか? 中身をxmlで記述さえすれば問題ない?と思って おりますが、調べるうちに色々な拡張子があるので、 選ぶ基準がわからなくなっています。 またRSSのバージョンも1.0や2.0などがありますが、 簡単にどういった違いがあるのかも教えてもらえると ありがたいです。 宜しくお願いします!

  • FirefoxでRSSアイコンがページ上にないのにRSS対応しているRSSフィードをサンダーバードで購読したい

    こんにちは。 Firefox2.0.0.1、およびTunderbirdバージョン2 beta2を使っています。 RSSはすべてTunderbirdで購読しています。 で、表題のとおりですが、 FirefoxでRSSアイコンがページ上にないのに、 RSS対応している(URLのバーの右端にRSSのアイコンが表示されるので分かります)サイトがあります。 この場合、どうやってThunbirdに登録するのが一番ラクなのでしょうか? 自分・・・ (1)「URLのバーの右端にRSSのアイコン」をダブルクリック    ⇒ライブブックマークが追加される (2)ブックマークメニュー(orブックマークツールバー)で、    そのライブブックマークにポイントをあわせる (3)ミギクリックしてプロパティを選択    ⇒RSS フィードの欄にRSSのxmlのアドレスが書いてある (4)それをコピー (5)サンダーバードに切り替え、どっかのフォルダをミギクリックし、    購読を選択・・・あとは通常の手順だと思います。 ・・・と、こんな手順をとっているのですが、 どうも、手間がかかりすぎなきがします。 もっとラクな方法やアドインはあるのでしょうか? もしご存じでしたら、おしえていただければ幸いです。 RSSフィードをサンダーバードで購読したい

  • rdfをIE7に認識させるには

    自分のサイトでRSSを配信したいと思い、新着情報を書き込む際にinndex.rdfを生成するWEBアプリを作っています。 index.rdfを生成して、サーバーに保存するところまではできました。 ところがインターネットエクスオプローラー7で確認したところ、RSSと認識していないようで、タイトルとURLと概要をずらずら並べたような文章が表示されました。 .htaccess も作成して「AddType application/xml .rdf」と記載しています。 goo RSSリーダーで試したところ、問題なく表示されました。 どこに問題があるのでしょうか。 ----------------- <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns/" xmlns="http://purl.org/rss/1.0/" xmlns:lang="ja" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" > <channel rdf:about="RDFファイルのURL"> <title>HPの名称</title> <link>HPのURL</link> <description>HPの紹介文</description> <items> <rdf:Seq> <rdf:li rdf:resource="記事のURL1" /> <rdf:li rdf:resource="記事のURL2" /> </rdf:Seq> </items> </channel> <item rdf:about="記事のURL1"> <title>タイトル1</title> <link>記事のURL1</link> <description>概要1 </description> </item> <item rdf:about="記事のURL2"> <title>タイトル2</title> <link>記事のURL2</link> <description>概要2 </description> </item> </rdf:RDF>

  • Firefox3でRSS登録

    Firefox3を使用しているのですが、特定のRSSを登録できなくて困っています。購読にはライブブックマークを使用しています。 購読できないのは http://www.itmedia.co.jp/info/rss/enterprise.html のRSSです。登録しようとしてマウスオーバーすると購読するリーダーを選択しないといけないため、ライブブックマークに登録できません。 どなたか登録の仕方が分かる方がいらしたら教えてください。 Mozilla/5.0 (Windows; U; Windows NT 5.2; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 Mozilla/5.0 (Windows; U; Windows NT 5.2; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1

  • FirefoxでRSSの一覧表示ができない。

    Firefox8.0を使用しているものです。 RSSのボタンをクリックしたらそれまでは一覧が表示されていたのですが、 突然「ライブブックマークで購読」というアラートが出るようになりました。 一覧表示に戻すにはどう対応すれば良いのでしょうか。 またIEだと「コマンドバー」を表示することでRSSのアイコンを表示することが可能になりますが、 Firefoxではそれに類するアドオンでしか無理なのでしょうか。 ご存じ方いらっしゃいましたら、ご教授お願いいたします。

  • おすすめのRSSリーダーを教えて下さい。

    これまでフィードを読むのに"snowl"や"FeedDemon"など色々と試してみたのですがしっくりきません。 Firefox3.6対応のアドオンかローカルのアプリでオススメのRSSリーダーがあれば教えて下さい。 条件としては、 ・動作がさほど重くない。 ・Webベースのリーダーの場合、Google、BlogLines、はてな、gooは除く。 ・Firefoxアドオンの場合、ライブブックマークを利用しない(アドオンがRSSフィードリーダー機能を持っている) ・ローカルアプリの場合、記事をFirefoxで開いたり連携が出来る。 ・可能であれば、2~3ペイン構成、フィルタ機能付き。 ここから探して下さいというようなURLだけの提示は避けていただけると有り難いです。 よろしくお願いします。

  • MagpieRSSを使ってrss取得の際の表示件数

    MagpieRSSを使ってrssを取得したく下記のphpを作成しました。 <?php define('MAGPIE_OUTPUT_ENCODING','UTF-8'); require_once('rss_fetch.inc'); $url="xxxx.rdf"; $rss = fetch_rss($url); foreach($rss->items as $item){ foreach($item[dc] as $key => $daytime){ if($key == "date"){ $rssdate = strtotime("$daytime"); $today = strtotime(date("Y/m/d H:i")); } if($rssdate > $today){ print("$item[title]"); } } } ?> 過去から未来の予定が書いてあるRSS(rdf)があり、 現在の時間のデータを取得して、未来の予定のを表示したいです。 現在、print("$item[title]");で未来の予定がズラっと取得できる状態です。 そして、ここからが問題なのですが、 ここ(print("$item[title]");)の表示を最新の1件にしたいのですが、どうしてもうまくいきません。 ご教授お願いします。

    • ベストアンサー
    • PHP
  • 自作したRSSファイルがIEなどでエラーになる

    RSSを出力するCGIを自作で作ったのですが、 その出来上がったRSS(RDFファイル)を、IEで開くと セミコロン ( ; ) が必要です。 行: 7 文字: 76 ?<channel rdf:about="*ttp://**.******.***/***/index.ms?mode=showvote&voteid=8549924"> などというエラーが出ます。 ちなみに上記の*は、文字数そのまま伏字にしております。 *ttpは、もちろんhttpです。 あるどうやら、全てのエラーは、 URLが記述されたところに発生しているようです・・・ リンク先は、CGIなので、?***=***などは何個も使っています。 もしかして、RSSでは、URLの?、=とかは使ってはいけないんですか? 問題のRSSについては、 ちょっとURLなどがあるので、アップ出来ません どうしても必要なら、アップさせていただきます。

    • ベストアンサー
    • XML
  • RSS1.0から取得した日付の書式変換

    ごちゃまぜRSSリーダーforPHP(http://www.vector.co.jp/soft/unix/net/se334908.html)を使ってRDFファイルから日付を取得しようとしています。 item['dc']['date'];と記述し 2006-04-07T19:39:44+09:00 と日付を取得することは できたのですが 本当は 2006/04/17 と表示したいと思っています。 どのように書式を変換するのでしょうか? ご教授お願いします

    • 締切済み
    • PHP

専門家に質問してみよう