lunes, 27 de abril de 2009

AAP BloqueT2.10 ejercicio1

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.
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

No hay comentarios:

Publicar un comentario