Php 使用XMLDOM从youtube提要检索数据

Php 使用XMLDOM从youtube提要检索数据,php,xml,youtube,Php,Xml,Youtube,我正在使用PHP和XMLDOM检索有关youtube视频的数据。从泛型元素检索数据很好,例如:。但是我不知道如何获取媒体名称空间,例如:。如何获取viewCount的值 这是我的密码: /* Retrieve information for YouTube video */ $ytUser = "http://gdata.youtube.com/feeds/api/users/".$user."/uploads?orderby=published&start-index=1&ma

我正在使用PHP和XMLDOM检索有关youtube视频的数据。从泛型元素检索数据很好,例如:
。但是我不知道如何获取媒体名称空间,例如:
。如何获取
viewCount
的值

这是我的密码:

/* Retrieve information for YouTube video */
$ytUser = "http://gdata.youtube.com/feeds/api/users/".$user."/uploads?orderby=published&start-index=1&max-results=1"; 

// Read feed in to DOM
$doc = new DOMDocument( '1.0', 'utf-8' );
$doc->load( $ytUser );
$doc->formatOutput = true;
$doc->preserveWhiteSpace = false;
// Video Author 
$ytAuthor = $doc->getElementsByTagName( "name" )->item( 0 )->nodeValue;
// YT title 
$ytTitle = $doc->getElementsByTagName( "title" )->item( 0 )->nodeValue;
// YT description 
$des = $doc->getElementsByTagName( "description" )->item( 0 )->nodeValue;
$ytDescription = ( strlen( $des ) > 350 ) ? substr( $des, 0, 350 ) . '...' : $des;

您应该使用方法
getelementsbytagnames
,如下所示:

$ns = 'the-complete-namespace-uri-for-media';
$media_statistics = $doc->getElementsByTagNameNS( $ns , 'statistics' );

请参阅。

谢谢您的回复,我不太确定名称空间uri中会出现什么。你能给我举个例子吗
这是名称空间,但我不知道这两个属性的值,因为它们将根据视频格式生成。前缀
yt:
不是实际的名称空间,只是一个缩写。实际值可以作为xml文档根元素的属性找到。查找属性
xmlns:yt=“…”
。我现在明白了,但我不知道如何获取viewCount的值。到目前为止,我已经做到了:
$ns=“xmlns:yt=”http://gdata.youtube.com/schemas/2007"; $stats=$doc->getelementsbytagnames($ns,'yt:statistics')一旦有了元素,使用“代码> GETAdvestTo”(),如IE,<代码> $STATS> >项目(0)-> GETAtQuy(“VIEWCOUNT”)<代码>。如果所有的OP想要得到统计元素,S/He可以使用<代码> GETelEngsByTAGNOTHE/<代码>,因为它只考虑本地名称,例如“代码> GETelEngsByTAGNID(“统计”)。
将返回yt:statistics节点。当您在特定名称空间中查找元素时,只需要
getelementsbytagnames
,它只是DOM,而不是XMLDOM。当您使用任何
load*
方法时,ctor参数将被丢弃,因此您的代码中不需要它们<代码>保留空格必须在
加载
之前和
格式输出
之后。如何获取具有名称空间的元素之前已经回答过多次,但是由于
getElementsByTagName
是通过本地名称获取的,因此您仍然可以获取统计信息。请参阅可能的重复信息,我仍然收到调用成员函数getAttribute()的
错误在一个非对象上
,您可能没有遵循我上面给出的示例代码,因为您可以看到我的示例工作,或者您试图获取的用户提要没有统计元素。