Ejercicio 518
Consideremos el siguiente documento XML.
Construye las expresiones XPath que permitan obtener los siguientes datos:
- Los discos de tecnología
SCSI
. - El nombre del sistema operativo de la m áquina con IP
192.168.10.45
. - Los atributos que figuran en los procesadores de la marca
AMD
. - Solo los textos que figuran en la configuracion (elemento
config
) del equipo con nombreCOPERNICO
. - Las máquinas de tipo
Semitorre
con sistema operativoWindows XP
. - Los fabricantes de las máquinas que tienen
4GB
de memoriaDDR2
. - Los sistemas operativos de las máquinas en las que figure el número de núcleos del procesador.
- Los nombre de las máquinas que emplee memoria con tecnología
DDR2
. - Las máquinas con procesador de marca
Intel
y grabadora de DVD. - La configuración de aquellas máquinas en las que figure un gateway.
- Las máquinas cuyo nombre comiencen por
PC
- El nombre de las máquinas con más de un disco duro.
- La suma de los GB de memoria RAM de todas las máquinas.
- La suma de las capacidades de los discos duros de tipo
SCSI
. - Los nombre de las máquinas de las que se conozca su cantidad de memoria pero no su tecnología.
- Las máquinas con sistema operativo de la familia Windows y con grabadora de DVD.
- Las máquinas en las que no figure el sistema operativo.
- El nombre de las máquinas y de los sistemas operativos de aquellas máquinas que tengan más de un disco duro.
- La configuración de aquellas máquinas en las que figure una dirección IP pero no un gateway.
- Los elementos vacios (los que no contengan texto).
- Las direcciones IP dentro de la red
192.168.10.0/24
. - Los nombre de las máquinas con procesador multinúcleo y 2GB o menos de memoria.
- Las máquinas que tengan disco duro (uno o más) con capacidad total mayor a
1000GB
. - Las máquinas que tengan un disco duro (uno o varios) con capacidad total menor de
80GB
.
Solución
- Los discos de tecnología
SCSI
.
/equipos/maquina/hardware/disco[@tecnologia="SCSI"]
- El nombre del sistema operativo de la máquina con IP
192.168.10.45
.
/equipos/maquina/config[IP="192.168.10.45"]/OS
- Los atributos que figuran en los procesadores de la marca
AMD
.
/equipos/maquina/hardware/procesador[@marca="AMD"]/@*
- Solo los textos que figuran en la configuracion (elemento
config
) del equipo con nombreCOPERNICO
.
/equipos/maquina[@nombre="COPERNICO"]/config/(role/text(), OS/text(), IP/text(), gateway/text())
- Las máquinas de tipo
Semitorre
con sistema operativoWindows XP
.
/equipos/maquina[hardware/tipo="Semitorre" and config/OS="Windows XP"]
- Los fabricantes de las máquinas que tienen
4GB
de memoriaDDR2
.
distinct-values(/equipos/maquina/hardware[memoria/@tecnologia="DDR2" and memoria/text()="4"]/fabricante)
- 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
- Los nombre de las máquinas que emplee memoria con tecnología
DDR2
.
/equipos/maquina[hardware/memoria/@tecnologia="DDR2"]/@nombre
- Las máquinas con procesador de marca
Intel
y grabadora de DVD.
/equipos/maquina[hardware/procesador/@marca="Intel" and hardware/grabadora/@tipo="DVD"]
- La configuración de aquellas máquinas en las que figure un gateway.
/equipos/maquina/config[exists(gateway)]
- Las máquinas cuyo nombre comiencen por
PC
/equipos/maquina[starts-with(@nombre, "PC")]/@nombre
- El nombre de las máquinas con más de un disco duro.
/equipos/maquina[count(hardware/disco)>1]/@nombre
- La suma de los GB de memoria RAM de todas las máquinas.
sum(//memoria)
- La suma de las capacidades de los discos duros de tipo
SCSI
.
sum(//disco[@tecnologia="SCSI"]/@capacidad)
- 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
- 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"]
- Las máquinas en las que no figure el sistema operativo.
/equipos/maquina[not(exists(config/OS))]
- 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())
- 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))]
- Los elementos vacios (los que no contengan texto).
//*[not(exists(text()))]
- 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")]
- 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
- 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]
- 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]