Página 1 de 1

Otro dilema con XML::Simple

NotaPublicado: 2008-07-28 23:00 @000
por danimera
Esta es la estructura que necesito, y la puedo lograr solo para la primera tag <image> pero no sé cómo hacer para que abra y cierre para todos los demás.

Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
<?xml version="1.0" encoding="UTF-8"?>
<gallery frameColor="0xFFFFFF" frameWidth="15" imagePadding="20" displayTime="6" enableRightClickOpen="true">
<image>
   <url>upload/8mayo.jpg</url>
   <caption>8 de Mayo</caption>
   <width>480</width>
   <height>320</height>
</image>
<image>
   <url>upload/15mayo.jpg</url>
   <caption>15 de Mayo</caption>
   <width>480</width>
   <height>320</height>
</image>
<image>
   <url>upload/16mayo.jpg</url>
   <caption>16 de Mayo</caption>
   <width>480</width>
   <height>320</height>
</image>
<image>
   <url>upload/19mayo.jpg</url>
   <caption>19 de Mayo</caption>
   <width>480</width>
   <height>320</height>
</image>
<image>
   <url>upload/22mayo.jpg</url>
   <caption>22 de Mayo</caption>
   <width>480</width>
   <height>320</height>
</image>
</gallery>
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Tengo que traer dinámicamente la información de cada imagen de una bd.

NotaPublicado: 2008-07-28 23:30 @020
por danimera
Perdón que moleste. Bueno, intenté solucionarlo y lo logré con esta parte de código:

Código: Seleccionar todo
$xml = {
      'image' => [
                    {
                      '1' => [
                                   'upload/8mayo.jpg'
                                 ],
                      '2' => ['Mayo 8'],
                      '3' => ['480'],
                      '4' => ['320']
                    },
                    {
                      '1' => [
                                   'upload/22mayo.jpg'
                                 ],
                      '2' => ['Mayo 22'],
                      '3' => ['480'],
                      '4' => ['320']
                    }
                  ]
    };


Pura estructura de datos... Perdón, pero es que por el estrés y corriendo y cosas esas me azaré mucho.

NotaPublicado: 2008-07-29 11:51 @535
por explorer
¿Y cómo has conseguido pasar de esa estructura al fichero XML?

NotaPublicado: 2008-07-29 12:21 @556
por Rene Serrano
Hola, yo te recomiendo el módulo XML::Generator.

Es muy sencillo. Por experiencia te lo recomiendo.

Saludos

NotaPublicado: 2008-08-02 08:35 @399
por danimera
explorer escribiste:¿Y cómo has conseguido pasar de esa estructura al fichero XML?


Es que esa era la estructura que tenía que lograr... la idea era que cómo debería formar la estructura en Perl, para que el XML::Simple me la reconociera y me creara el archivo XML correcto.

NotaPublicado: 2008-08-02 12:02 @543
por explorer
A lo que me refiero es que me gustaría ver el XMLOut() que has usado.

NotaPublicado: 2008-08-05 10:50 @493
por danimera
explorer escribiste:A lo que me refiero es que me gustaría ver el XMLOut() que has usado.


Este es el código que utilice para eso:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
foreach $foto(@fotos) {
    ($id,$nombre,$tumb,$categoria,$dia_foto,$mes_foto,$anno_foto) = split(/\|\|/, $foto);

    #if ($categoria eq $category && $dia_foto == $dia && $anno == $anno_foto ){
    if ($category eq $categoria){
         $file = {
                      'aurl' => ["upload/$nombre"],
                      'caption' => ["$dia_foto / $mes_foto"],
                      'cbwidth' => ['480'],
                      'height' => ['320']
                    };
       push @{$xml->{image}}, $file;
    }
   
}


$xml->{enableRightClickOpen} = 'true';
$xml->{frameColor          } = '0xFFFFFF';
$xml->{displayTime         } = 6;
$xml->{imagePadding        } = 20;
$xml->{frameWidth          } = 15;

print $xs->XMLout( $xml,
    RootName => 'gallery',
    NoEscape => 1,
    KeyAttr  => {},
    XMLDecl  => '<?xml version="1.0" encoding="UTF-8"?>',
);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

NotaPublicado: 2008-08-05 12:54 @579
por explorer
¡Ah!... pero es que ese código no genera la estructura que decías que habías usado... en el mensaje anterior.

Ya me extrañaba a mí la presencia de las claves '1', '2', '3', etc.

Caso resuelto.

NotaPublicado: 2008-08-05 20:33 @898
por danimera
ah, no, para nada, lo que pasa es que cambie ciertas cosas...