Primero hay que definir el archivo que vamos a analizar: muebles.xml
<?xml version="1.0" encoding='iso-8859-1' ?>
<micasa>
<habitacion id='comedor'>
<mueble>aparador</mueble>
<mueble>sofá</mueble>
<puerta a='balcón' />
</habitacion>
<habitacion id='cocina'>
<mueble>encimera</mueble>
<mueble>horno</mueble>
<puerta a='comedor' />
</habitacion>
<habitacion id='baño'>
<mueble>espejo</mueble>
<mueble>estantería</mueble>
<puerta a='comedor' />
</habitacion>
</micasa>
A continuación preparamos el programa en Ruby que encuentra las habitaciones que tienen una puerta con dirección a la habitación pasada por parámetro: muebles.rb
#!/usr/bin/ruby
require 'rexml/document'
include REXML
destino = ARGV[0]
documento = 'muebles.xml'
file = File.new(documento)
doc = Document.new(file)
XPath.each(doc,"//habitacion[puerta[@a='"+destino+"']]/@id") { |habitacion|
puts "*"+habitacion.value
}
Por último, si ejecutamos en la terminal el comando ./muebles.rb comedor nos devuelve lo siguiente:
afharo@ajelandroHP:~/AAP/Clase 18/bloqueT212ej1$ ./muebles.rb comedor
*cocina
*baño
No hay comentarios:
Publicar un comentario