<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Descripción de los elementos de una casa soñada -->
<micasa>
<habitacion id="comedor">
<mueble>aparador</mueble>
<mueble>sofa</mueble>
</habitacion>
<habitacion id="cocina">
<mueble>lavaplatos</mueble>
<mueble>fregadero</mueble>
</habitacion>
</micasa>
Código ruby utilizado:
#!c:\ruby\bin\ruby.exerequire 'rexml/document'
require 'rexml/streamlistener'
require 'cgi'
include REXML
file=ARGV[0]
diccionario = {"micasa"=>"myHouse",
"habitacion"=>"room",
"mueble"=>"furniture",
}
class Traduce
include StreamListener
def initialize(dic)
@escribe = false
@diccionario=dic
end
def tag_start(name, attributes)
puts "<"+@diccionario[name]+">"
if (name == "mueble")
@escribe = true
end
end
def tag_end(name)
puts "</"+@diccionario[name]+">"
@escribe=false
end
def text(text)
if @escribe
if @diccionario[text]
puts @diccionario[text]
else
puts text
end
end
end
end
print "Content-Type: application/xhtml+xml\n\n"
listener = Traduce.new(diccionario)
parser = Parsers::StreamParser.new(File.new(file), listener)
parser.parse
Resultado:
Content-Type: application/xhtml+xml
<myHouse>
<room>
<furniture>
aparador
</furniture>
<furniture>
sofa
</furniture>
</room>
<room>
<furniture>
lavaplatos
</furniture>
<furniture>
fregadero
</furniture>
</room>
</myHouse>
No hay comentarios:
Publicar un comentario