domingo, 10 de mayo de 2009

Bloque T2.12 Ejercicio 1

Bueno, por fin logré terminar la parte de Xpath. El código es este::
#!/usr/bin/ruby

require 'rexml/document'
include REXML

documento = ARGV[0]
habitacion = ARGV[1]

file = File.new(documento)
doc = Document.new(file)
XPath.each(doc,"//habitacion[puerta[@a='#{habitacion}']]") { |habit|
puts "*"+habit.attributes['id']
}




Y el archivo de XML que hemos utilizado es este:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE micasa PUBLIC "MI CASA" "micasa.dtd">
<micasa>
<habitacion id="cuarto de baño">
<mueble>aparador</mueble>
<mueble>bañera</mueble>
<puerta a='pasillo' />
</habitacion>
<habitacion id="pasillo">
<mueble>cuadro</mueble>
<puerta a='cuarto de baño' />
<puerta a='dormitorio' />
<puerta a='recibidor' />
</habitacion>
<habitacion id="recibidor">
<mueble>espejo</mueble>
<puerta a="pasillo" />
</habitacion>
</micasa>




Y he logrado que muestre todas las habitaciones uqe tienen una puerta al destino que se le pase como parámetro, de la forma:
./xpath.rb pasillo

que devolverá:
  • *cuarto de baño
  • *recibidor

No hay comentarios:

Publicar un comentario