Foros del Web » Programando para Internet » PHP »

Descomponer un XML

Estas en el tema de Descomponer un XML en el foro de PHP en Foros del Web. Hola Amigos del foro, tengo un XML, que he construido con api DOM php, pero ahora no se como descomponerlo en arreglos, por ejemplo el ...
  #1 (permalink)  
Antiguo 28/01/2008, 09:35
 
Fecha de Ingreso: marzo-2005
Mensajes: 4
Antigüedad: 19 años, 1 mes
Puntos: 0
Sonrisa Descomponer un XML

Hola Amigos del foro, tengo un XML, que he construido con api DOM php, pero ahora no se como descomponerlo en arreglos, por ejemplo
el arreglo de las vacaciones, de las modalidades y de los feriados

----------------------------------------

<Calendario>
<item id="vacaciones">
<fecha data="06/07/2008"/>
<fecha data="05/07/2008"/>
</item>
<item tipo="Semestre" id="modalidad">
<fecha data="01/03/2008" tipo="ini"/>
<fecha data="31/05/2008" tipo="fin"/>
<fecha data="01/06/2008" tipo="ini"/>
<fecha data="31/08/2008" tipo="fin"/>
</item>
<item id="feriados">
<fecha data="31/12/2008"/>
<fecha data="19/09/2008"/>
<fecha data="25/12/2008"/>
</item>
</Celendario>

--------------------------------------------

Se agradece cualquier tipo de ayuda
--
Saludos
Ricardo
  #2 (permalink)  
Antiguo 28/01/2008, 10:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Descomponer un XML

Puedes usar la misma extensión DOM XML, o SimpleXML, o XML Parser para cambiar tu XML a un arreglo.

Saludos.
  #3 (permalink)  
Antiguo 28/01/2008, 11:24
 
Fecha de Ingreso: marzo-2005
Mensajes: 4
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Descomponer un XML

Holas


Sip, eso estoy intentando pero no he podido(no me resulta ni con DOM, ni con SimpleXml)

No se, por ejemplo como capturar el atributo 'vacaciones' y con ese todos listar las fecha a través del atributo data de las fecha(obviamente en un ciclo), pero no se como.


No se si tienes una pagina donde muestren eso, he buscado varias pero ninguna tiene esa estructura.

Solo necesito una pequeña ayuda, o la idea de como hacerlo.


--
Saludos
  #4 (permalink)  
Antiguo 28/01/2008, 12:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Descomponer un XML

Prueba asi:
Código PHP:
$xml = new SimpleXMLElement(file_get_contents('archivo.xml'));
foreach( 
$xml->item as $item ) {
      if( (string) 
$item["id"] == "vacaciones" ) {
              echo 
$item->fecha[0]['data'];
      }

Saludos.
  #5 (permalink)  
Antiguo 28/01/2008, 14:04
 
Fecha de Ingreso: marzo-2005
Mensajes: 4
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Descomponer un XML

[QUOTE=GatorV;2265662]Prueba asi:
Código PHP:
$xml = new SimpleXMLElement(file_get_contents('archivo.xml'));
foreach( 
$xml->item as $item ) {
      if( (string) 
$item["id"] == "vacaciones" ) {
              echo 
$item->fecha[0]['data'];
      }


Muchas gracias, por tu ejemplo
era justo lo que necesitaba, pero no funciona, creo
que le encontré el error, pero no se como arreglarlo

<Calendario>
<item id="vacaciones">
<fecha id="06/07/2008"/>
<fecha id="05/07/2008"/>
</item>
</Calendario>

El error es que no capturaste el atributo id de la <fecha id=" " />
cuando estas imprimiendo con echo

echo $item->fecha[0]['data'];


creo que puede ser algo así

echo $item->fecha->id[0]['data'];


O estoy puro tonteando no mas


eso
grax

Saludos
  #6 (permalink)  
Antiguo 28/01/2008, 15:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Descomponer un XML

¿Porque no lo pruebas?

Saludos.
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 02:01.