#!/usr/bin/ruby
require 'rexml/document'
require 'rexml/streamlistener'
include REXML
#Para usar con jugadores.xml
entrada=ARGV[0]
diccionario = {"entrenador"=>"coach",
"lista_jugadores"=>"players_list",
"jugador" => "player",
"equipo"=>"team" }
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
domingo, 10 de mayo de 2009
Bloque T2.10
Bueno, este bloque es hacer un filtro SAX que tradujera el sistema de etiquetas que teníamos para el archivo jugadores.xml al inglés en ruby. Para eso hemos definido un diccionario, y cada vez que se encuentra una etiqueta ya definida en español, la cambia por una etiqueta en inglés.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario