Bloque_2.10_Vallesquino

El documento XML a filtrar es el siguiente: code format="xml" 

sofa TV    frigorifico silla lavadora cama mesa armario code Y el filtro sax que he creado es:

code format="ruby" require 'rexml/document' require 'rexml/streamlistener' include REXML
 * 1) !/usr/bin/ruby

file=ARGV[0]

diccionario = {   "micasa"=>"myHouse", "habitacion"=>"room", "mueble"=>"furniture", "salon"=>"dinningroom", "cocina"=>"kitchen", "dormitorio"=>"bedroom", "sofa"=>"sofa", "TV"=>"TV", "frigorifico"=>"refrigerator", "silla"=>"chair", "lavadora"=>"washing machine", "cama"=>"bed", "mesa"=>"table", "armario"=>"wardrobe"}

class Escucha include StreamListener

def initialize(elemento) @diccionario=elemento @escribe = false end

def tag_start(name, attributes) puts "" if (name == "mueble") @escribe = true end end

def tag_end(name) puts "" @escribe=false end

def text(text) if @escribe puts @diccionario[text] end end

end

listener = Escucha.new(diccionario) parser = Parsers::StreamParser.new(File.new(file), listener) parser.parse

code Para ejecutarlo bastaría con poner en el teminal: code ruby sax.rb casa.xml code siendo sax.rb el filtro sax y casa.xml el xml a filtrar