Saltar al contenido principal

Ejercicio 518

Consideremos el siguiente documento XML.

Construye las expresiones XPath que permitan obtener los siguientes datos:

  1. Los discos de tecnología SCSI.
  2. El nombre del sistema operativo de la máquina con IP 192.168.10.45.
  3. Los atributos que figuran en los procesadores de la marca AMD.
  4. Solo los textos que figuran en la configuracion (elemento config) del equipo con nombre COPERNICO.
  5. Las máquinas de tipo Semitorre con sistema operativo Windows XP.
  6. Los fabricantes de las máquinas que tienen 4GB de memoria DDR2.
  7. Los sistemas operativos de las máquinas en las que figure el número de núcleos del procesador.
  8. Los nombre de las máquinas que emplee memoria con tecnología DDR2.
  9. Las máquinas con procesador de marca Intel y grabadora de DVD.
  10. La configuración de aquellas máquinas en las que figure un gateway.
  11. Las máquinas cuyo nombre comiencen por PC
  12. El nombre de las máquinas con más de un disco duro.
  13. La suma de los GB de memoria RAM de todas las máquinas.
  14. La suma de las capacidades de los discos duros de tipo SCSI.
  15. Los nombre de las máquinas de las que se conozca su cantidad de memoria pero no su tecnología.
  16. Las máquinas con sistema operativo de la familia Windows y con grabadora de DVD.
  17. Las máquinas en las que no figure el sistema operativo.
  18. El nombre de las máquinas y de los sistemas operativos de aquellas máquinas que tengan más de un disco duro.
  19. La configuración de aquellas máquinas en las que figure una dirección IP pero no un gateway.
  20. Los elementos vacios (los que no contengan texto).
  21. Las direcciones IP dentro de la red 192.168.10.0/24.
  22. Los nombre de las máquinas con procesador multinúcleo y 2GB o menos de memoria.
  23. Las máquinas que tengan disco duro (uno o más) con capacidad total mayor a 1000GB.
  24. Las máquinas que tengan un disco duro (uno o varios) con capacidad total menor de 80GB.
Solución
  1. Los discos de tecnología SCSI.
/equipos/maquina/hardware/disco[@tecnologia="SCSI"]
  1. El nombre del sistema operativo de la máquina con IP 192.168.10.45.
/equipos/maquina/config[IP="192.168.10.45"]/OS
  1. Los atributos que figuran en los procesadores de la marca AMD.
/equipos/maquina/hardware/procesador[@marca="AMD"]/@*
  1. Solo los textos que figuran en la configuracion (elemento config) del equipo con nombre COPERNICO.
/equipos/maquina[@nombre="COPERNICO"]/config/(role/text(), OS/text(), IP/text(), gateway/text())
  1. Las máquinas de tipo Semitorre con sistema operativo Windows XP.
/equipos/maquina[hardware/tipo="Semitorre" and config/OS="Windows XP"]
  1. Los fabricantes de las máquinas que tienen 4GB de memoria DDR2.
distinct-values(/equipos/maquina/hardware[memoria/@tecnologia="DDR2" and memoria/text()="4"]/fabricante)
  1. Los sistemas operativos de las máquinas en las que figure el número de núcleos del procesador.
/equipos/maquina[exists(hardware/procesador/@num_nucleos)]/@nombre
  1. Los nombre de las máquinas que emplee memoria con tecnología DDR2.
/equipos/maquina[hardware/memoria/@tecnologia="DDR2"]/@nombre
  1. Las máquinas con procesador de marca Intel y grabadora de DVD.
/equipos/maquina[hardware/procesador/@marca="Intel" and hardware/grabadora/@tipo="DVD"]
  1. La configuración de aquellas máquinas en las que figure un gateway.
/equipos/maquina/config[exists(gateway)]
  1. Las máquinas cuyo nombre comiencen por PC
/equipos/maquina[starts-with(@nombre, "PC")]/@nombre
  1. El nombre de las máquinas con más de un disco duro.
/equipos/maquina[count(hardware/disco)>1]/@nombre
  1. La suma de los GB de memoria RAM de todas las máquinas.
sum(//memoria)
  1. La suma de las capacidades de los discos duros de tipo SCSI.
sum(//disco[@tecnologia="SCSI"]/@capacidad)
  1. Los nombre de las máquinas de las que se conozca su cantidad de memoria pero no su tecnología.
/equipos/maquina[exists(hardware/memoria[not(exists(@tecnologia))])]/@nombre
  1. Las máquinas con sistema operativo de la familia Windows y con grabadora de DVD.
/equipos/maquina[contains(config/OS, "Windows") and hardware/grabadora/@tipo="DVD"]
  1. Las máquinas en las que no figure el sistema operativo.
/equipos/maquina[not(exists(config/OS))]
  1. El nombre de las máquinas y de los sistemas operativos de aquellas máquinas que tengan más de un disco duro.
/equipos/maquina[count(hardware/disco)>1]/(@nombre, config/OS/text())
  1. La configuración de aquellas máquinas en las que figure una dirección IP pero no un gateway.
/equipos/maquina/config[exists(IP) and not(exists(gateway))]
  1. Los elementos vacios (los que no contengan texto).
//*[not(exists(text()))]
  1. Las direcciones IP dentro de la red 192.168.10.0/24.
/equipos/maquina/config[starts-with(IP, "192.168.10")]/IP 
/equipos/maquina/config/IP[starts-with(., "192.168.10")]
  1. Los nombre de las máquinas con procesador multinúcleo y 2GB o menos de memoria.
/equipos/maquina[hardware/procesador/@num_nucleos>1 and hardware/memoria <= 2]/@nombre
  1. Las máquinas que tengan disco duro (uno o más) con capacidad total mayor a 1000GB.
/equipos/maquina[count(hardware/disco)>=1 and sum(hardware/disco/@capacidad)> 1000]
  1. Las máquinas que tengan un disco duro (uno o varios) con capacidad total menor de 80GB.
/equipos/maquina[count(hardware/disco)>=1 and sum(hardware/disco/@capacidad)< 80]