Título: Pasar XML a PHP Publicado por: Xes en 13 Octubre 2006, 00:46 am Hola, necesito ayuda para pasar xml a php, vereis, tengo una emisora de radio que carga el xml en el servidor, y la idea es sacar solo los datos de "author" y "title" para poner en el reproductor web un marco flotante que autorecargue cada 20 segundos, y asi mostrar el artista y la cancion que esta reproduciendo.
pero con lo que e sacado de otras webs me no sale como quiero, queda asi: La Raya Radio Tu emisora on line La Raya Radio Kortatu 03.- kortatu - aizkolari 146 tal cual, todo seguido, lo que quiero es que quede asi: Artista: Kortatu Cancion: 03.- kortatu - aizkolari solo eso. el codigo que estoy poniendo es el siguiente: playing.xml <rss version="2.0"> <channel> <itemrds1>La Raya Radio</itemrds1> <itemrds2>Tu emisora on line</itemrds2> <item> <description>La Raya Radio</description> <author>Kortatu</author> <title>03.- kortatu - aizkolari</title> <seg>248</seg> <mess></mess> <mess_sched></mess_sched> <nameprog></nameprog> <nameprog2></nameprog2> <help></help> </item> </channel> </rss> playing.php <? $file = "playing.xml"; $map_array = array( "BOLD" => "B", "EMPHASIS" => "I", "LITERAL" => "TT" ); function startElement($parser, $name, $attrs) { global $map_array; if ($htmltag = $map_array[$name]) { print "<$htmltag>"; } } function endElement($parser, $name) { global $map_array; if ($htmltag = $map_array[$name]) { print "</$htmltag>"; } } function characterData($parser, $data) { print $data; } $xml_parser = xml_parser_create(); // usa case-folding para que estemos seguros de encontrar la etiqueta // en $map_array xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($file, "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); ?> Como tendria que poner el php para que quedase como puse arriba?? Artista: xxxx cancion: xxxx Título: Re: Pasar XML a PHP Publicado por: deya en 13 Octubre 2006, 01:05 am Utiliza SimpleXML. Te permite manejar el xml como variables php.
http://php.net/simplexml Salu2 ;) Título: Re: Pasar XML a PHP Publicado por: alone-in-the-chat en 15 Octubre 2006, 02:32 am tu problema esta alli
-------------- function characterData($parser, $data) { print $data; } -------------- estas mandando al browser todo lo que encuentras en el xml deberias mandarlo solo en caso se trata de la etiquetas <author> <title> podrias usar un flag que se active en la funcion startElement en caso se trata de cualkiera de esas dos etiquetas y en endElement en caso se trata de cualkiera de las dos etiquetas los desabilitas ......... suerte ... |