• 締切済み

simplexmlについて初歩的なことですが助けてください。

PHP初心者なのですが、ご教示下さい! きっと分かる方にとってはびっくりするくらい単純な話だと思うのですが・・・simplexmlでforeach中に記述した箇所がうまく出力されません・・。 基本的なやり方だと正常に行くのですが、ちょっと背伸びしてUTF-8をsjisにエンコードしたりそんな処理をはさむとダメです。(携帯サイト向けにsjisにしたいので。) 具体的には、 $xml = simplexml_load_file($url); foreach ($xml->channel->item as $item ) { $title = $item['title']; $titles = mb_convert_encoding($title, "SJIS", "UTF-8");   $data = "<h3>".$titles."</h3>\n"; } print($data); というような感じで、foreach中に$titlesの内容を出力させたいのですが、記述方法がどうも分かりません。 パースには成功していて、{$item->title}のように記述すると正常に出力されます。 どなたかアドバイスをいただけると幸いです。 よろしくお願いします。

みんなの回答

  • Rayderl
  • ベストアンサー率83% (40/48)
回答No.2

他の方も書かれていますが、SimpleXMLで返されるのは連想配列ではなくオブジェクトですから、<item><title>タイトル</title></item> というXMLなら$item->title でアクセスします。 $item["title"] でアクセスできるのは、<item title="タイトル"></item> となっているXMLの場合です。

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

$title = $item->title; なのでは?

関連するQ&A