elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Pasar XML a PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pasar XML a PHP  (Leído 2,900 veces)
Xes

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Pasar XML a PHP
« 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


En línea

deya


Desconectado Desconectado

Mensajes: 378


Muñeca Princesa Deya Bella


Ver Perfil WWW
Re: Pasar XML a PHP
« Respuesta #1 en: 13 Octubre 2006, 01:05 am »

Utiliza SimpleXML. Te permite manejar el xml como variables php.

http://php.net/simplexml
Salu2  ;)


En línea

"No es mas pobre el que tiene poco, sino el que mucho ambiciona" Charles Chaplin.
alone-in-the-chat


Desconectado Desconectado

Mensajes: 587


Ver Perfil
Re: Pasar XML a PHP
« Respuesta #2 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 ...
En línea

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines