• Publicidad

Conversión de datos XML

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Conversión de datos XML

Notapor caribesoft » 2007-09-07 09:47 @449

Hola Amigos Perlianos:

Estoy haciendo un script que hace un POST a un ASP y me regresa los datos en XML.

Al ver los datos recibidos con el Dumper, me da la siguientes estructura:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$VAR1 = {
    'Locations' => {
        'Location' => [
            {
                'location' => 'Test Location',
                'resort' => {}
            },
            {
                'location' => 'Palm Island Resort',
                'resort' => {}
            },
            {
                'location' => 'Las Brisas Huatulco',
                'resort' => {}
            },
            {
                'location' => 'Excellence Riviera Cancun',
                'resort' => {}
            },
            {
                'location' => 'The Fairmont Acapulco Princess',
                'resort' => {}
            },
            {
                'location' => 'Las Hadas Golf, Resort and Marina',
                'resort' => {}
            },
              # etc,etc,
        ]
    }
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Necesito tomar los datos del hash y convertirlos a una estructura de Perl, para presentarlos en un documento HTML. ¿Alguien me puede dar un tip de cómo hacer esto?

Estoy utilizando
use LWP::UserAgent; para el POST
use XML::Simple;

Como siempre, muchas gracias de antemano,

Caribesoft. 8)
caribesoft
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2006-05-09 22:01 @959
Ubicación: Cancun

Publicidad

Notapor explorer » 2007-09-07 13:10 @590

Si haces un Dumper de una estructura de datos, es que ya tienes una estructura de datos de Perl...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -w

$VAR1 = {
    'Locations' => {
        'Location' => [
            {
                'location' => 'Test Location',
                'resort' => {}
            },
            {
                'location' => 'Palm Island Resort',
                'resort' => {}
            },
            {
                'location' => 'Las Brisas Huatulco',
                'resort' => {}
            },
            {
                'location' => 'Excellence Riviera Cancun',
                'resort' => {}
            },
            {
                'location' => 'The Fairmont Acapulco Princess',
                'resort' => {}
            },
            {
                'location' => 'Las Hadas Golf, Resort and Marina',
                'resort' => {}
            },
        ]
    }
};

foreach my $location ( @{ $VAR1->{Locations}->{Location} } ) {

    print $location->{location}, "\n";
}

__OUTPUT__
Test Location
Palm Island Resort
Las Brisas Huatulco
Excellence Riviera Cancun
The Fairmont Acapulco Princess
Las Hadas Golf, Resort and Marina
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



Para presentarlo en HTML hay docenas de formas, por ejemplo con un sistema de plantillas. Con HTML::Template lo puedes hacer fácil.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor caribesoft » 2007-09-07 13:24 @600

Muchas gracias y tienes razón, ya está en una estructura de Perl.

Haciendo pruebas encontré otra forma, que también funciona:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $respuesta= $xs->XMLin($res->content);
for( @{$respuesta->{Locations}->{Location}} ) {
    print "<p>$_->{location} | </p>";
  }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Gracias, cada día aprendo una cosa nueva ....
caribesoft
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2006-05-09 22:01 @959
Ubicación: Cancun


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron