Author Topic: question about SimpleXML and picasaWeb xml  (Read 757 times)

0 Members and 1 Guest are viewing this topic.

Offline bdee1Topic starter

  • Irregular
  • Posts: 46
    • View Profile
question about SimpleXML and picasaWeb xml
« on: March 18, 2010, 11:45:35 AM »
Hi - I am trying to use simpleXML to parse a picasaWeb XML feed and I am running into a bit of trouble.

the URL of the picasaweb feed I am using is:
http://picasaweb.google.com/data/feed/api/user/blairdee2000/albumid/5149975922288869729?kind=photo&access=public&thumbsize=144c&imgmax=512

right now i am just trying to spit out the thumbnail image url and the title and description for each.

so the thumbnail url should be at:
feed->entry->media:group->media:thumbnail in the url attribute

and the title should be found at
feed->entry->media:group->media:title

and the description should be found at
feed->entry->media:group->media:description

so initially i thought the following code would work:

$xml 
simplexml_load_file($feedURL);
foreach(
$xml->entry as $entry)
	
{
	
	
imgTitle entry->media:group->media:title;
	
	
imgDescrip entry->media:group->media:description;
	
	
thumbURL entry->media:group->media:thumbnail['url'];
	
	
echo(
"<strong>Title:" $imgTitle "</strong><br/>");
	
	
echo(
"<strong>Description:" $imgDescrip "</strong><br/>");
	
	
echo(
"<img src='" $thumbURL "'><br/>");
	
	

	
}


but that didnt work - it seems as though the : in the node names is throwing it off.  sorry I am a relative newbie - i am sure that the colon has a special meaning but i dont know what it is.

so i ended up finding some code that does work but it seems more complex than it  needs to be:

$xml 
simplexml_load_file($feedURL);

foreach(
$xml->entry as $entry)
	
{
	
	
$imgTitleArray $entry->xpath('./media:group/media:title');
	
	
$imgTitle $imgTitleArray[0];

	
	
$imgDescripArray $entry->xpath('./media:group/media:description');
	
	
$imgDescrip $imgDescripArray[0];
	
	

	
	
$imgThumbArray $entry->xpath('./media:group/media:thumbnail');
	
	
$imgThumbAttributes $imgThumbArray[0]->attributes();
	
	
$imgThumb $imgThumbAttributes[0];
	
	

	
	
echo(
"<strong>Title:" $imgTitle "</strong><br/>");
	
	
echo(
"<strong>Description:" $imgDescrip "</strong><br/>");
	
	
echo(
"<img src='" $imgThumb "'><br/><br/>");
	
}


looks like i have to use the xpath function to reference these special nodes which returns an array.  then i have to use the attributes function to return an array of the attributes.  then i have to reference the attributes array item by its numerical index... i dunno this seems more complex than it needs to be... am I right?  or is that just how it has to be done.  if someone could provide some guidance to get me in the right track here I would appreciate it.