• ベストアンサー
  • 困ってます

blogのRSSデータよりtitleとdateの取得を・・・

  • 質問No.2145955
  • 閲覧数348
  • ありがとう数2
  • 回答数2

お礼率 24% (37/149)

RSSデータよりtitleとdateの取得を取得し、別ページに表示したいと考えています。
以前内容自体を表示させるものは、お手伝いいただきできるようになったのですが、titleなどを取得する事ができませんでした・・・

(以下がRSSより本文を取得して、表示するPHPコードの質問となります。)
http://okwave.jp/kotaeru.php3?q=2053985

上記コードでtitle,dateを取得して、表示したいと考えています。
素人考えだと、$contents=$root->getElementsByTagName("encoded");
の部分で本文を取得しているので、これを$contents=$root->getElementsByTagName("title");などとして、取得できないかと試したのですが、うまくいきませんでした・・・

titleとdateの取得をして表示するコード・・・アドバイスでもいいですのでご教授の方お願い致します。

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 50% (3003/5914)

>$link=$item->getElementsByTagName("link");
>で取得して、それで<A>タグでtitleを囲む感じにすればよいのでしょうか?
#1の投稿でも書いていますが、
getElementsByTagName( ) を使って取り出したものはたとえ合致するものが1つしかなくてもノードではなくてノードリストなので、
$link->item(0)->nodeValue のようにアクセスする必要があると思いますが、それだけ気をつければ大丈夫だと思います。
*
DOMによる方法が面倒くさければSimpleXML を使うとすっきりするかもしれません。
お礼コメント
xtort

お礼率 24% (37/149)

ありがとうございました。
XMLの考え方が分かっていなかったみたいですね・・・

SimpleXMLの方も試してみたいと思います。
投稿日時:2006/05/25 15:39

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 50% (3003/5914)

修正してみました
----------------------------------------------------------------
<?php
$dom = new domDocument;
$dom->load("index.xml");
$root=$dom->documentElement;
$items=$root->getElementsByTagName("item");
foreach($items as $item){
$title=$item->getElementsByTagName("title");
print mb_convert_encoding($title->item(0)->nodeValue,"SJIS","UTF-8") . "\n";
$date=$item->getElementsByTagName("date");
print $date->item(0)->nodeValue . "\n";
$contents=$item->getElementsByTagName("encoded");
$html= $contents->item(0)->nodeValue . "\n";
print mb_convert_encoding($html,"SJIS","UTF-8") . "\n";
}
?>
お礼コメント
xtort

お礼率 24% (37/149)

有難う御座います!
動作確認がまだ出来ていませんが、勘違いをしていたせいで動かなかったようですね・・・

ちなみにlinkを取得しタイトルより飛ばしたい場合は、
$link=$item->getElementsByTagName("link");
で取得して、それで<A>タグでtitleを囲む感じにすればよいのでしょうか?
投稿日時:2006/05/16 02:50
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ