- ベストアンサー
blogのRSSデータよりtitleとdateの取得を
- blogのRSSデータからtitleとdateを取得する方法について質問です。
- 以前、内容自体を表示させることはできるようになったが、titleなどを取得することができない問題があります。
- 今回の質問は、RSSデータのtitleとdateを取得し、別のページに表示したいと考えています。具体的なコードのアドバイスをいただけると助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>$link=$item->getElementsByTagName("link"); >で取得して、それで<A>タグでtitleを囲む感じにすればよいのでしょうか? #1の投稿でも書いていますが、 getElementsByTagName( ) を使って取り出したものはたとえ合致するものが1つしかなくてもノードではなくてノードリストなので、 $link->item(0)->nodeValue のようにアクセスする必要があると思いますが、それだけ気をつければ大丈夫だと思います。 * DOMによる方法が面倒くさければSimpleXML を使うとすっきりするかもしれません。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率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"; } ?>
お礼
有難う御座います! 動作確認がまだ出来ていませんが、勘違いをしていたせいで動かなかったようですね・・・ ちなみにlinkを取得しタイトルより飛ばしたい場合は、 $link=$item->getElementsByTagName("link"); で取得して、それで<A>タグでtitleを囲む感じにすればよいのでしょうか?
お礼
ありがとうございました。 XMLの考え方が分かっていなかったみたいですね・・・ SimpleXMLの方も試してみたいと思います。