sábado, 6 de junio de 2009

Bloque T2.10

Hacer un filtro SAX que traduzca el célebre XML casero de etiquetas en español a etiquetas en inglés. Hacerlo en Ruby o en otro lenguaje.




require 'rexml/document'
require 'rexml/streamlistener'
include REXML

file='./casa.xml'
diccionario = {

"micasa"=>"my house",
"habitacion"=>"room",
"mueble"=>"furniture",
"puerta"=>"door",
"aparador"=>"sideboard",
"bañera"=>"bath"}

class Traduccion
include StreamListener

def initialize(traduc)

@escribe = false
@diccionario=traduc
end

def tag_start(name, attributes)
puts "<"+@diccionario[name]+">"

@escribe = true

end

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

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

end

listener = Traduccion.new(palabras)
parser = Parsers::StreamParser.new(File.new(file), listener)
parser.parse

No hay comentarios: