var_dump和simpleXML?

时间:2012-11-15 02:30:07

标签: php

我正在通过simpleXML加载XML文件。我是PHP的新手,也是解析PHP的新手,但我有点困惑

我正在尝试理解我存储的变量的结构,所以我尝试了var_dump()

让我感到困惑的是我正在寻找的数据在转储数据中的任何地方而不是

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

这是我目前正在使用的网址。但是,例如,转储变量数据中无法找到持续时间/秒 - 它在哪里以及如何访问它?

这是我得到的输出:http://pastebin.com/ggumXTEu

1 个答案:

答案 0 :(得分:0)

<yt:duration>的路径为/feed/entry/media:group/yt:duration/

使用var_dump()时,您看不到这些元素,因为它们属于命名空间(media和yt)。

您可以使用SimpleXMLElement-&gt; 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>