Para probarlo descargar estos dos archivos:
equipo.xml
bloqueT210.rb
#!/usr/bin/ruby
require 'rexml/document'
require 'rexml/streamlistener'
include REXML
entrada='./equipo.xml'
diccionario = {"equipo"=>"team",
"jugador"=>"player",
"nombre"=>"name",
"posicion"=>"position",
"numero"=>"number",
"entrenador"=>"coach",
"Portero"=>"Goalkeeper",
"Amigo del portero"=>"Friend of the goalkeeper",
"La fan de Mortadelo"=>"The fan of Mortadelo"}
class Traduce
include StreamListener
def initialize(dic)
@escribe = false
@diccionario = dic
end
def tag_start(name, attributes)
puts "<"+@diccionario[name]+">"
@escribe = true
end
def tag_end(name)
puts "</"+@diccionario[name]+">"
@escribe=false
end
def text(texto)
if @escribe
if @diccionario[texto]
puts @diccionario[texto]
else
puts texto
end
end
end
end
print "Content-Type: application/xhtml+xml\n\n"
listener = Traduce.new(diccionario)
parser = Parsers::StreamParser.new(File.new(entrada), listener)
parser.parse