Foros del Web » Programando para Internet » PHP »

No consigo leer XML

Estas en el tema de No consigo leer XML en el foro de PHP en Foros del Web. Hola, llevo unas horas probando cosas y no consigo leer un XML. Tiene que ser sencillísimo pero no lo consigo. El XML es uno generado ...
  #1 (permalink)  
Antiguo 08/03/2012, 10:29
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 21 años, 2 meses
Puntos: 0
Pregunta No consigo leer XML

Hola,

llevo unas horas probando cosas y no consigo leer un XML. Tiene que ser sencillísimo pero no lo consigo.

El XML es uno generado por Mediainfo aunque he probado también con otro y cargando un string y no hay forma.

Para asegurarme estoy probando con un XML de W3Schools:
http://www.w3schools.com/xml/cd_catalog.xml

Lo descargo y guardo como cd.xml.

Hago lo siguiente pero no funciona:
Código PHP:
$xml simplexml_load_file("cd.xml");
echo 
$xml->ARTIST;
echo 
$xml->CATALOG->CD->TITLE
No muestra nada ningún "echo".

Probando desde string:
Código PHP:
$X "<CATALOG>
    <CD>
        <TITLE>Empire Burlesque</TITLE>
        <ARTIST>Bob Dylan</ARTIST>
        <COUNTRY>USA</COUNTRY>
        <COMPANY>Columbia</COMPANY>
        <PRICE>10.90</PRICE>
        <YEAR>1985</YEAR>
    </CD>
</CATALOG>"
;
$xml = @simplexml_load_string($X) ;
echo 
"Titulo:" $xml->CATALOG->CD->TITLE."<br>"
Tampoco funciona con:

Código PHP:
echo "Titulo:" $xml->TITLE.""
EL XML de Mediainfo es más o menos así:
Código HTML:
<?xml version="1.0" encoding="UTF-8"?>
<Mediainfo version="0.7.50">
<File>
<track type="General">
<Complete_name>video.avi</Complete_name>
<Format>AVI</Format>
<Format_Info>Audio Video Interleave</Format_Info>
<File_size>630 MiB</File_size>
<Duration>41mn 13s</Duration>
<Overall_bit_rate>2 136 Kbps</Overall_bit_rate>
<Writing_application>VirtualDubMod 1.5.10.2 (build 2540/release)</Writing_application>
<Writing_library>VirtualDubMod build 2540/release</Writing_library>
</track>

<track type="Video">
<ID>0</ID>
<Format>MPEG-4 Visual</Format>
<Format_profile>Advanced Simple@L5</Format_profile>
<Format_settings__BVOP>2</Format_settings__BVOP>
<Format_settings__QPel>No</Format_settings__QPel>
<Format_settings__GMC>No warppoints</Format_settings__GMC>
...
..
.
¿Me echáis una mano? ¡Gracias!
  #2 (permalink)  
Antiguo 08/03/2012, 10:41
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 16 años, 10 meses
Puntos: 11
Respuesta: No consigo leer XML

prueba a cambiar en tu codigo esto:

Código PHP:
$xml simplexml_load_file('cd.xml'); 
a ver si asi carga el XML
__________________
"Si necesitas ayuda para tu foro en phpBB solo buscanos en google como montatuforo y la obtendras"
  #3 (permalink)  
Antiguo 08/03/2012, 10:44
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: No consigo leer XML

Hola Charles87, gracias por tu ayuda.

Sí, cargarlo carga igual. Si hago un print_r me sale "algo" en los dos casos:

Cita:
SimpleXMLElement Object ( [CD] => Array ( [0] => SimpleXMLElement Object ( [TITLE] => Empire Burlesque [ARTIST] => Bob Dylan [COUNTRY] => USA [COMPANY] => Columbia [PRICE] => 10.90 [YEAR] => 1985 ) [1] => SimpleXMLElement Object ( [TITLE] => Hide your heart [ARTIST] => Bonnie Tyler [COUNTRY] => UK [COMPANY] => CBS Records [PRICE] => 9.90 [YEAR] => 1988 ) [2] => SimpleXMLElement Object ( [TITLE] => Greatest Hits [ARTIST] => Dolly Parton [COUNTRY] => USA [COMPANY] => RCA [PRICE] => 9.90 [YEAR] => 1982 ) [3] => SimpleXMLElement Object ( [TITLE] => Still got the blues [ARTIST] => Gary Moore [COUNTRY] => UK [COMPANY] => Virgin records [PRICE] => 10.20 [YEAR] => 1990 ) [4] => SimpleXMLElement Object ( [TITLE] => Eros [ARTIST] => Eros Ramazzotti [COUNTRY] => EU [COMPANY] => BMG [PRICE] => 9.90 ............................
Si lo intento con el XML de Mediainfo:
Cita:
SimpleXMLElement Object ( [@attributes] => Array ( [version] => 0.7.50 ) [File] => SimpleXMLElement Object ( [track] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [type] => General ) [Complete_name] =>video.avi [Format] => AVI [Format_Info] => Audio Video Interleave [File_size] => 630 MiB [Duration] => 41mn 13s [Overall_bit_rate] => 2 136 Kbps [Writing_application] => VirtualDubMod 1.5.10.2 (build 2540/release) [Writing_library] => VirtualDubMod build 2540/release ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [type] => Video ) [ID]....................
  #4 (permalink)  
Antiguo 08/03/2012, 11:12
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 16 años, 10 meses
Puntos: 11
Respuesta: No consigo leer XML

Si utilizas la funcion simplexml_load_file eso es lo que te devolvera mira el manual
http://co.php.net/manual/es/function...-load-file.php
__________________
"Si necesitas ayuda para tu foro en phpBB solo buscanos en google como montatuforo y la obtendras"
  #5 (permalink)  
Antiguo 08/03/2012, 11:25
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: No consigo leer XML

Ya está solucionado.

Estaba intentando leer desde la raíz y el objete $xml es ya esa raíz.

En vez de:

Cita:
$xml->CATALOG->CD->TITLE
Hay que usar:

Cita:
$xml->CD->TITLE
ya que CATALOG es la raíz y es el propio objto $xml.

Etiquetas: mediainfo, simplexml, 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 17:56.