2

simpleXMLを介してXMLファイルをロードしています。私はせいぜいPHPの初心者であり、PHPの構文解析は初めてですが、少し混乱しています。

保存した変数の構造を理解しようとしているので、var_dump()を試しました。

私を混乱させているのは、私が探しているデータがXMLにあり、ダンプされたデータのどこにも存在しないことです。

http://gdata.youtube.com/feeds/api/videos?q=surfing&max-results=25

それが私が現在使用しているURLです。ただし、たとえば、期間/秒はダンプされた変数データのどこにも見つかりません-それはどこにあり、どのようにアクセスすればよいですか?

これが私が得ている出力です:http://pastebin.com/ggumXTEu

4

1 に答える 1

2

への道<yt:duration>/feed/entry/media:group/yt:duration/

var_dump()を使用する場合、これらの要素は名前空間(mediaおよびyt)に属しているため、表示されません。

SimpleXMLElement-> children()を使用してこれらの要素にアクセスできます。引数としてnamespace-uriを指定する必要があります。children()

<ol>
<?php
$xml=simplexml_load_file('http://gdata.youtube.com/feeds/api/videos?q=surfing&max-results=25');
foreach($xml->entry as $entry)
{
  $duration=$entry
              ->children('http://search.yahoo.com/mrss/')
                ->group
                  ->children('http://gdata.youtube.com/schemas/2007')
                    ->duration
                      ->attributes()
                        ->seconds;
       printf('<li><strong>%s</strong>( %ds)</li>',$entry->title,$duration); 
}
?> 
</ol>
于 2012-11-15T22:28:55.107 に答える