apuntes_Tularis2k8_30-03-09

Comenzamos con el resumén de AlexFH. Vemos los ejercicios de autievaluacion de alexBM y pakitoXus.

Seguimos con el tema: procesando XML. Vemos un ejemplo de programa "muebles.rb" que muestra y escribe en la salida el fichero XML, como se ve no tiene terminadores de sentencia (el retorno de carro ) y donde se utiliza la librería REXML. EL contenido del fichero es el siguiente:

La salida muestra el código de entrada XML. Seguimos viendo otro ejemplo en el que haremos algo de más utilidad: code require 'rexml/document' include REXML documento = ARGV[0] file = File.new(documento) doc = Document.new(file) doc.root.each_element('habitacion') { |habitacion| habitacion.each_element('mueble') { |mueble| puts mueble.text } }

code

En este ejemplo nos centramos en las últimas líneas. Podemos ver como buscamos el nodo raíz y a partir de él, vamos buscando las ramas que cuelgan llamadas habitación, esas ramas las almacenamos en la variable ´h´, a partir de esta variable realizamos lo mismo con las ramas mueble que cuelguen de la rama habitación. La salida de un fichero correspondería a los atributos de mueble. Comprobamos si la búsqueda de los nodos habitacion es válida para nodos dentro de otros nodos, el resultado es que no los encuentra.

Vemos también el ejemplo en PERL:

code use XML::Simple; my $documento = $ARGV[0]; my $muebles = XMLin($documento); for my $h ( @{$muebles->{habitacion}->{mueble}} ) { print "$h\n"; } code

Aquí : "for my $h ( @{$muebles->{habitacion}->{mueble}} ) { " recorremos la estructura de datos dereferenciando un array (@, % para asociativas) y obtenemos el contenido.

Hacemos el t2.5 y lo sube Vallesquino y nos lo explica.

Seguimos con 2.8:Formatos XML específicos, comenzamos viendo el formato de RSS, en concreto la versiñon 2.0, este formato XML esta diseñado para soportar noticias. Atom es similar pero tiene deifnido un API para publicar noticias. Tienen estructura muy similar. Vemos un ejemplo en ruby para leer un fichero RSS directamente y cuyo cñodigo no presenta mucha mas dificultad que el que ya hemos tratado aunque existen librerías específicas para leer archivos rss.

Hacemos el ejercicio t2.7 y lo vuelve a subir Vallesquino.