Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/10/2008, 08:00
luissg
 
Fecha de Ingreso: octubre-2008
Ubicación: Barcelona
Mensajes: 52
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: RSS Personalizado

Hola "mamon"!

Es posible representar el RSS como te de la gana. Piensa que es un archivo XML, al fin y al cabo, así que puedes parsearlo con PHP, Javascript, .Net, e incluso con una hoja de estilos XSL.

Por ejemplo, yo tengo este RSS de Amazon en una de mis webs:

http://rss.amazon.com/TopSeller/cat/music/ (original)

Es el RSS con el top ten de artistas que más venden. Ese RSS visto en mi web queda así:

http://www.eightnotes.org/

Lo que hago es obtener el XML, formatearlo como me de la gana, y renderizar el HTML resultante.

Lo hago así, por si te sirve:

Obtener XML del RSS:

Código:
	public function GetTopTenBestSellingMusic ()
	{
		$requestUrl = 'http://rss.amazon.com/TopSeller/cat/music/associate/'.__AMAZON_ASSOC_ID.'/';
		$data = readRemoteFile ($requestUrl);
		if ($data) 
		{
			$xmlObjectData = simplexml_load_string ($data);
			return ($xmlObjectData);
		}
	}
Formatear e imprimir el resultado:

Código:
	public function RenderTopTenBestSellingMusic ($xmlData)
	{
		$strHtml = '';
		if ($xmlData->xpath('//item'))
		{
			foreach($xmlData->xpath('//item') as $item)
			{
				$description = $item->description;
				// Thumbnail
				$ThumbUrl = '';
				$beginUrl = strpos($description,'img src="',0);
				if ($beginUrl)
				{
					$endUrl = strpos($description, ' alt', $beginUrl + 1);
					$beginUrl = $beginUrl + 8;
					$ThumbUrl = substr ($description, $beginUrl, $endUrl - $beginUrl);
				}
				$strHtml .= "<div class=\"amazontoptenlink\" style=\"height: 200px; float:left; text-align: center; margin: 5px\" >";
				$strHtml .= "<img src=$ThumbUrl alt =\"$item->title\" border =\"0\" /><br />";
				$strHtml .= "<a href=\"index.php?searchcriteria=".addslashes(urlencode($item->title))."\">Search for videos</a><br />";
				$strHtml .= "<a href=\"$item->link\">Buy from Amazon now!</a><br />";
				$strHtml .= "</div>";
			}
		}
		return $strHtml;
	}
Como ves, en mi caso no tiene nada que ver con CSS, es manipulado a lo bestia :)

Espero que te ayude!

Luis