Foros del Web » Programando para Internet » PHP »

Como leer un xml en php y mostrarlo

Estas en el tema de Como leer un xml en php y mostrarlo en el foro de PHP en Foros del Web. Hola compañeros, Por más que he probado el mostrar los datos que obtengo de este xml, no hay manera... podriais ayudarme.. este es el xml... ...
  #1 (permalink)  
Antiguo 12/04/2011, 05:38
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Como leer un xml en php y mostrarlo

Hola compañeros,

Por más que he probado el mostrar los datos que obtengo de este xml, no hay manera...

podriais ayudarme..

este es el xml...
Código XML:
Ver original
  1. - <Schedule System="Jazler">
  2. - <Event status="happening" startTime="12:47:29" eventType="song">
  3.   <Announcement Display="Estas escuchandor:" />
  4. - <Song title="Comadre">
  5.   <Album title="20 aros de Carlotas" />
  6. - <Artist name="Las Carlotas">
  7.   <Media runTime="216.958" />
  8.   <Expire Time="12:51:05" />
  9.   <TrackID AUID="11243" />
  10.   </Artist>
  11.   </Song>
  12.   </Event>
  13.   </Schedule>

Y este es mi intento de codigo php que lo interpreta...

Código PHP:
<? 
  

 $xml 
simplexml_load_file("temas.xml");
$datox $xml->Event->Song[0][title]; //esto imprime hola
    
echo $datox
  } 


?>
La idea es poder obtener el Titulo de la cancion, el artista y el album... pero no se lo que hago mal, por más que lo comparo con ejemplos.

Un saludo y gracias.
__________________
Deja el mundo mejor que como lo encontraste... By B.P.
  #2 (permalink)  
Antiguo 12/04/2011, 06:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Como leer un xml en php y mostrarlo

Porque los atributos, se leen Los atributos se pueden iterar con el método attributes. Además las llaves asociativas deben ir encerradas entre comillas.

Edito: Aparte, la forma como deberías hacer es
Código PHP:
Ver original
  1. <?php
  2. $xml = new SimpleXMLElement('a.xml', null, true);
  3. echo $xml->Event->Song['title'];
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 12/04/2011 a las 06:40
  #3 (permalink)  
Antiguo 12/04/2011, 09:18
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

Bueno como se debe notar no domino nada xml y me falta mucho por aprender...
Pero te lo agradezco... acabo de ver claramente que debia estar indicado con las comillas como me comentas.

Pero el null y el true que utilidad tienen dentro del codigo?

A partir de lo que me has indicado he puesto el codigo asi pero no me lo muestra...
Código XML:
Ver original
  1. <?php
  2. $xml = new SimpleXMLElement('temas.xml', null, true);
  3. echo $xml->Event->Song['title'];
  4. ?>
__________________
Deja el mundo mejor que como lo encontraste... By B.P.
  #4 (permalink)  
Antiguo 12/04/2011, 09:23
Avatar de vhan99  
Fecha de Ingreso: febrero-2010
Mensajes: 105
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

tambien podria ser un load algo asi como

<html>
<head>
</head>
<body>

LOAD DATA INFILE ‘/media/KINGSTON junio juan.xlsx’


</body>
</html>
  #5 (permalink)  
Antiguo 12/04/2011, 09:25
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

No entiendo nada...

Igualmente ya lo probe de englobarlo dentro de un body etç y no me funciona tampoco.

Un saludo,
__________________
Deja el mundo mejor que como lo encontraste... By B.P.
  #6 (permalink)  
Antiguo 12/04/2011, 09:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Como leer un xml en php y mostrarlo

Yo cogí el código que brindaste, lo copie y pegué integramente (bueno le quité dos rayas que tenía, pero el resto lo dejé) en un archivo que lo llamé a.xml. Luego llamé el xml en el constructor de SimpleXMLElement e hice lo que te dije y me funcionó correctamente. Si el archivo que estás leyendo tiene otros datos, no te va a funcionar lo que te dije si tiene ascendientes. Pero si copias el ejemplo que diste y lo pegas a un archivo, verás que funciona.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 12/04/2011, 09:44
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

Mmm hombre yo tambien lo tengo tal cual puesto... y no se?

En principio el servidor si lo soporta el xml o sea que no se que debe ser.

Voy a probar y repasar que no me haya olvidado algo.
__________________
Deja el mundo mejor que como lo encontraste... By B.P.
  #8 (permalink)  
Antiguo 12/04/2011, 09:54
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

Aggg tiene que tener alguna caracteristica especial en el servidor para que se ejecute este tipo de codigo..

Yo solo tengo el archivo . xml

Y luego el archivo .php y este no es capaz de mostrar el codigo del xml

No se porque..

Adjunto enlaces de pruebas...

http://www.radiocarmelo.eu/temas.php

http://www.radiocarmelo.eu/temas.xml

El codigo es el mismo y no tienen nada mas incluido. No entiendo.

Muchas gracias por la paciencia.
__________________
Deja el mundo mejor que como lo encontraste... By B.P.
  #9 (permalink)  
Antiguo 12/04/2011, 10:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Como leer un xml en php y mostrarlo

Lo acabo de correr de esta forma
Código PHP:
Ver original
  1. <?php
  2. $xml = new SimpleXMLElement('http://www.radiocarmelo.eu/temas.xml', null, true);
  3. $song = $xml->Event->Song['title'];
  4. echo $song;
Y se mostró Prueba de cancion

¿Qué versión de PHP tienes?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 12/04/2011, 10:41
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

Pues sigue sin funcionar.

La versión que tengo es 4.3.9-3.22

Tendrá algo que ver?

Un saludo,
__________________
Deja el mundo mejor que como lo encontraste... By B.P.
  #11 (permalink)  
Antiguo 12/04/2011, 10:49
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

Lo dicho lo acabo de probar en un servidor con php5 y me ha funcionado.

Muchisimas gracias por todo y tu paciencia.

Solo me queda entender como te he comentado antes que significa el null y el true?

Cuidate y muchas gracias.
__________________
Deja el mundo mejor que como lo encontraste... By B.P.
  #12 (permalink)  
Antiguo 12/04/2011, 10:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Como leer un xml en php y mostrarlo

Verifica en el manual http://www.php.net/manual/es/simplex....construct.php la segunda opcion son para opciones adicionales y la tercera si es true indica que que el primer parametro es una ruta, si es false es que lo que estás indicando en el primer parametro es un string.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #13 (permalink)  
Antiguo 13/04/2011, 07:23
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

Hola de Nuevo,

He visto que en php no puedo hacer que cada minuto consulte el documento xml...

Asi que necesitaria saber como hacer la lectura del documento en javascript...?

He desarrollado este codigo pero no me funciona.

Código Javascript:
Ver original
  1. function cargarXML()
  2. {
  3. var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  4. xmlDoc.async = false;
  5. xmlDoc.load("http://www.radiocarmelo.eu/temas.xml");
  6.  
  7. document.write("<html>");
  8. document.write("<body >");
  9. $song = xmlDoc.getElementsByTagName("Event")[0].("Song")[0].firstChild.nodeValue
  10. }
  11. document.write("</body>");
  12. document.write("</html>");


Y este es el xml

- <Schedule System="Jazler">
- <Event status="happening" startTime="12:47:29" eventType="song">
<Announcement Display="Estas escuchandor:" />
- <Song title="Comadre">
<Album title="20 aros de Carlotas" />
- <Artist name="Las Carlotas">
<Media runTime="216.958" />
<Expire Time="12:51:05" />
<TrackID AUID="11243" />
</Artist>
</Song>
</Event>
</Schedule>



Y este el codigo bueno en php:

Código PHP:
Ver original
  1. <?php
  2. $xml = new SimpleXMLElement('http://www.radiocarmelo.eu/temas.xml', null, true);
  3. $song = $xml->Event->Song['title'];
  4. $album = $xml->Event->Song->Album['title'];
  5. $artist = $xml->Event->Song->Artist['name'];
  6. $status = $xml->Event->Announcement['Display'];
  7.  
  8. $temaonline = "ARTISTA: ".$artist." - TEMA: ".$song." - ALBUM: ".$album."";
  9. ?>
__________________
Deja el mundo mejor que como lo encontraste... By B.P.
  #14 (permalink)  
Antiguo 13/04/2011, 07:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Como leer un xml en php y mostrarlo

Podrías hacerlo mediante la tecnología e AJAX. Haces una petición y que ejecute el código con PHP.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #15 (permalink)  
Antiguo 13/04/2011, 07:37
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

Buenas seria algo asi no?

function ejecutar( ){
<?php
$xml = new SimpleXMLElement('http://www.radiocarmelo.eu/temas.xml', null, true);
$song = $xml->Event->Song['title'];
$album = $xml->Event->Song->Album['title'];
$artist = $xml->Event->Song->Artist['name'];
$status = $xml->Event->Announcement['Display'];
$temaonline = "ARTISTA: ".$artist." - TEMA: ".$song." - ALBUM: ".$album."";
?>

}
timer = setTimeout("ejecutar()", 60000);;

Como hago que la funcion ejecute el codigo php? Seria como indico o no?




Un saludo.
__________________
Deja el mundo mejor que como lo encontraste... By B.P.

Última edición por Section1; 13/04/2011 a las 07:43
  #16 (permalink)  
Antiguo 13/04/2011, 07:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Como leer un xml en php y mostrarlo

Como te indiqué mediante una petición con ajax.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #17 (permalink)  
Antiguo 13/04/2011, 08:18
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

Vale disculpa ya se que puedo parecer pesado o ignorante pero es que de ajax no conozco nada y no se como se hace para hacer una peticion.

Disculpa en serio de abusar de tu tiempo y paciencia.

Ruego porfavor me indiques un poco más.

Un saludo.
__________________
Deja el mundo mejor que como lo encontraste... By B.P.
  #18 (permalink)  
Antiguo 13/04/2011, 08:22
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Como leer un xml en php y mostrarlo

Hacer una petición via ajax no es nada dificil, es más una vez hagas el primer código te aseguro que reusaras ese mismo para otras aplicaciones. Pasa por el foro de AJAX, mira la parte de aportes y observa como ellos hacen las peticiones, toma uno y trata de implementarlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #19 (permalink)  
Antiguo 13/04/2011, 08:42
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

oks haver que logro
__________________
Deja el mundo mejor que como lo encontraste... By B.P.
  #20 (permalink)  
Antiguo 13/04/2011, 08:50
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

function pintapagina('http://www.radiocarmelo.es/tema.php',contenedor){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1)) {
var scs=pagina_requerida.responseText.extractScript();
document.getElementById(contenedor).innerHTML=pagi na_requerida.responseText;
scs.evalScript();
}

timer = setTimeout("pintapagina()", 60000);;


}


Creo que esto deberia funcionar pero no me funciona...
No entiendo compañero..
__________________
Deja el mundo mejor que como lo encontraste... By B.P.
  #21 (permalink)  
Antiguo 14/05/2011, 19:45
 
Fecha de Ingreso: diciembre-2003
Mensajes: 173
Antigüedad: 20 años, 4 meses
Puntos: 1
Respuesta: Como leer un xml en php y mostrarlo

Buenas e nuevo,

Haber si alguien pudiera ayudarme más con el tema de hacer la peticion para que se refresque la web... tal y como he indicado en el post anterior.

Lo he probado por de todas las maneras que se me ocurre y no se ya como avanzar o por lo menos ver el fallo que cometo en el codigo..

Un saludo y gracias de antemano
__________________
Deja el mundo mejor que como lo encontraste... By B.P.

Etiquetas: xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:53.