• Publicidad

Salida en formato xml por pantalla

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Salida en formato xml por pantalla

Notapor sergiarcano » 2012-12-10 08:37 @400

Hola a todos, ¡ya estoy aquí de nuevo tocando un poquito las narices!

Nada, la pregunta es muy simple, aunque no he hecho la prueba directamente, sé que con XML::Simple puedo usar XMLout para introducir unos valores en un archivo xml, pero... ¿y si lo que quiero es sacar esos datos, que tengo en una serie de variables escalares, en formato XML pero por la salida estándar? ¿Tengo necesariamente que insertar los datos en un fichero y luego leer el fichero para mostrar los datos por pantalla? Pretendo evitar precisamente tener que usar un fichero temporal para ello.

Vale, olvidad lo que he dicho antes. Dos días miré documentación sobre XML:Simple y no encontré lo que quería, pero hoy sí... hasta cierto punto.

Ahora la pregunta se transforma en lo siguiente: supongamos que tengo estos tres valores:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $http_rc=100;
  2. my $flt="cadena";
  3. my $rc=1;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


y quiero mostrarlos así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
  1. <httprc>100</httprc>
  2. <textft>cadena</textft>
  3. <RetC>1</RetC>
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


He hecho lo siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $xs = new XML::Simple(ForceArray => 1, KeyAttr => []);
  2. my %xml;
  3. $xml{httprc}=$http_rc;
  4. $xml{textft}=$flt;
  5. $xml{RetC}=$rc;
  6. my $ref= \%xml;
  7. my $r= $xs->XMLout($ref);
  8.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Y obtengo esta salida:
Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
  1. <opt httprc="100" textft="cadena" RetC="1" />
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿Cómo tengo que cambiar el formato para que me lo muestre como yo quiero y sin el "opt" del principio? Todo lo que veo por ahí usa primero un XMLin y sobre esa referencia un XMLout, pero yo no tengo ese XMLin, solo los datos que quiero formatear.
sergiarcano
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2012-11-28 10:18 @471

Publicidad

Re: Salida en formato xml por pantalla

Notapor explorer » 2012-12-10 13:15 @594

Pero es que eso no es un XML... no sigue el formato oficial... solo quieres sacar los contenidos de unas variables con unas marcas, nada más.

Por eso el XML::Simple te saca una marca raíz (opt), porque los archivos XML necesitan de la presencia de una raíz.

Si solo quieres sacar las marcas, te vale con construir unos print() con esos valores...
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

Salida en formato xml por pantalla

Notapor sergiarcano » 2012-12-11 10:45 @489

Ufff, al final quieren que saque esos datos en ese formato y que incluyan también datos de un contenido HTML que me devuelve una página y que muestre también un comentario para separar distintos Content y... les ha faltado pedir que haga el pino.

Nada, a base de print().

Pensé que por esta vía sería más sencillo, pero va a ser mejor de la otra forma. Gracias :).

PD: Sigo sin encontrar si hay una forma directa de marcar como resuelto el hilo. Sé que tiene que andar por algún sitio...
sergiarcano
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2012-11-28 10:18 @471

Re: Salida en formato xml por pantalla

Notapor explorer » 2012-12-11 10:52 @494

Hay módulos en Perl para generar contenido con estilo de marcas. El propio módulo CGI podría valer.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use feature 'say';
  2. use CGI qw/httprc textft RetC/;
  3.  
  4. say httprc(100);
  5. say textft('cadena');
  6. say RetC(1);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿No puedes convencerles para poder generar un auténtico archivo XML? Si la estructura es complicada, XML::Simple puede ahorrar trabajo.

De todas maneras, hay otros 200 módulos en CPAN para generar XML... así que para lo que quieres hacer, casi seguro que ya existe ;)

Para marcar como resuelto, hay un botón en la parte superior derecha de cada mensaje, que pone "Aceptar respuesta". Solo tienes que pulsarlo en el mensaje que resolvió el problema planteado en el hilo.
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

Re: Salida en formato xml por pantalla

Notapor sergiarcano » 2012-12-11 10:59 @499

Qué va, sólo quieren que el script tenga la opción de mostrar la salida de esa forma "por si acaso" el día de mañana alguien quiere tratar la información de esa manera.

De todas formas, muuuuuchas gracias :)
sergiarcano
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2012-11-28 10:18 @471


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron