youtube feeds zijn veranderd: Node no longer exists

Status
Niet open voor verdere reacties.

poashoas

Gebruiker
Lid geworden
31 mei 2008
Berichten
66
Hoi,

Ik zit met een vreemd probleem, ik heb exact dezelfde functies in 2 bestanden staan. De ene pagina verwerkt de XML goed en de andere in Magento niet.

De doctypes:

werkende versie:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

niet werkende versie:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">

Het gaat alleen om regel 17 en regel 21. Als ik van die variabelen een vaste waarde schrijf werken de andere nodes gewoon wel.
Zie http://www.internet-via-satelliet.nl/magento/youtube

Code:
[LIST=1]
[*]public function getChannel(){
[*]		
[*]   $channel=Mage::helper('youtube')->getChannel();
[*]	$feedURL = 'http://gdata.youtube.com/feeds/api/users/'.$channel.'/uploads'; //?vq=keyword //?orderby=updated
[*]		
[*]	// lees feed in een SimpleXML object
[*]	$sxml = simplexml_load_file($feedURL);

[*]	$counts = $sxml->children('http://a9.com/-/spec/opensearchrss/1.0/');
[*]	$total = $counts->totalResults;  
[*]	$videos="<h1>". $sxml->title."</h1>";
[*]	$videos.= $total." items found.<p/><ol>";
[*]   
[*]	// zet de details van elke video op het scherm
[*]	foreach ($sxml->entry as $entry) {
[*]		// haal de media informatie op aan de hand van de xml nodes
[*]		$media = $entry->children('http://search.yahoo.com/mrss/');

[*]		// video player URL ophalen
[*]		$attrs = $media->group->player->attributes();
[*]		$watch = $attrs['url']; 

[*]		//<yt:duration> node: video lengte
[*]		$yt = $media->children('http://gdata.youtube.com/schemas/2007');
[*]		$attrs = $yt->duration->attributes();
[*]		$length = $attrs['seconds']; 

[*]		// <gd:rating> node: video ratings
[*]		$gd = $entry->children('http://schemas.google.com/g/2005'); 

[*]		if ($gd->rating) {
[*]		$attrs = $gd->rating->attributes();
[*]		$rating = $attrs['average']; 
[*]		} else {
[*]		$rating = 0; 
[*]		} 

[*]		// echo videos
[*]		$videos.=  "<li>\n";
[*]		$videos.=  "<a href=\"{$watch}\">{$media->group->title}</a>
[*]		<br/>\n";
[*]		$videos.=  sprintf("%0.2f", $length/60) . " min. | {$rating} user rating
[*]		<br/>\n";
[*]		$videos.=  "{$media->group->description}<p/>\n";
[*]		$videos.=  "<p/></li>\n";
[*]	}

[*]	$videos.= "</ol>";
[*]	
[*]	return $videos;

[*]	}
[/LIST]
 
Laatst bewerkt:
oplossing gevonden

Hallo,

ik heb een oplossing gevonden:

if ($media->group->player && $media->group->player->attributes()) {

dan pakt ie het alsnog.....
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan