raquel+28-04-08

Una vez impresa la cabecera el resto es imprimir un stándard. En linux el apache está por defecto. Hay un directorio específico (cgi- bin). Si se introduce un programa y se le dan privilegios de ejecución. Pruebo en el servidor apache de Linux el ejemplo propuesto y bservo que funciona correctamente.
 * Creando documentos XML**:
 * use CGI qw(:standard);** Con esto importamos varios identificadores.
 * print header( -type => 'application/xhtml+xml' );** Imprime una cabecera.

A continuación estudiamos el siguiente ejemplo:

code
 * 1) !/usr/bin/perl

use CGI qw(:standard); use XML::RSS; use LWP::Simple qw(get);

my $numero_elementos = param('num_elementos');

my $rdf = get('http://atalaya.blogalia.com/rdf.xml'); my $rss = new XML::RSS; $rss->parse($rdf); my $rss_salida = new XML::RSS;
 * 1) Baja fichero

$rss_salida->channel( title => 'Resumen feed',             link => 'http://atalaya.blogalia.com',              description => 'Resumiendo el feed' ); print header( -type => 'application/xhtml+xml' ); #Cabeecera aplication, hay que hacer algo con ella for (my $i = 0; $i < $numero_elementos;$i ++ ) { $rss_salida->add_item( title => $rss->{'items'}[$i]->{'title'},            link => $rss->{'items'}[$i]->{'link'} ); } print $rss_salida->as_string;
 * 1) vamos creando el objeto RSS de salida elemento por elemento
 * 1) Construimos el RSS de salida a base del rss de entrada

code A un cgi se le pueden introducir los datos por entrada estándar, forma post. La que se emplea en el ejemplo de arriba es get. Otra forma es mediante variables de entorno

Para servir un fichero JSON hay que poner en la cabecera que sirva un documento txt.


 * Otra forma de procesar XML**:

Filtros SAX: Simple apple for XML Cada vez que se recibe info de un tipo determinado se genera un evento, se responde a los enventos que interesan, a los otros no. Vemos un ejemploo en Ruby: (esta librería no es exactamente SAX, pero es parecida) Se crea una clase específica, cada elemento de dicha clase escucha un tag distinto:

Clases en ruby: Variable de instancia (su ámbito es un objeto) En ruby se ponen con arroba. Variable de clase (Su ámbito es toda la clase, todos los objetos ven el mismo valor de esta variable).

Para extraer información de forma rápida es aconsejable emplear filtros de tipo SAX.