在 XML(从参数)PHP 中查找值


Finding a value in XML (from a parameter) PHP

我正在寻找一种从XML访问中查找参数"duration"值的方法

源:http://gdata.youtube.com/feeds/api/videos/bSCs7NzghSg

我尝试了类似的东西:

        preg_match('#<yt:duration seconds=''(.*?)''/>#is',$xml,$resultduration);
    $duration = $resultTitre[count($resultduration)-1];

但值返回 0

这可以通过 SimpleXML 来完成。使用 children() 方法查找子项,attributes()方法访问属性。

下面是一个用于此目的的函数:

function getDuration($url) {
    $xml = simplexml_load_file($url);
    $duration =  $xml->children('media', true)
                  ->group->children('yt', true)
                    ->duration->attributes('', true)->seconds;
    return $duration; 
}

用法:

$url = 'http://gdata.youtube.com/feeds/api/videos/bSCs7NzghSg';
echo getDuration($url); // => 2461

演示!

$file = 'http://gdata.youtube.com/feeds/api/videos/bSCs7NzghSg';

$xml = simplexml_load_file($file);

$result = $xml->xpath('//yt:duration');

foreach ($result as $node) {

echo (double) $node['seconds'];
echo ' ';

}