Bloque de consultas simples XPath 1
Dado el siguiente documento XML realiza las siguientes consultas con XPath (se eliminan las tildes para evitar problemas de compatibilidad de caracteres):
<?xml version="1.0" encoding="UTF-8"?> <ies> <nombre>IES TicArte</nombre> <web>http://www.ticarte.com</web> <ciclos> <ciclo id="ASIR"> <nombre>Administración de Sistemas Informáticos en Red</nombre> <grado>Superior</grado> <decretoTitulo año="2009" /> </ciclo> <ciclo id="DAW"> <nombre>Desarrollo de Aplicaciones Web</nombre> <grado>Superior</grado> <decretoTitulo año="2010" /> </ciclo> <ciclo id="SMR"> <nombre>Sistemas Microinformáticos y Redes</nombre> <grado>Medio</grado> <decretoTitulo año="2008" /> </ciclo> </ciclos> </ies>
- Mostrar el nombre del instituto.
/ies/nombre
- Mostrar la página web del instituto sin etiquetas.
/ies/web/text()
- Mostrar el nombre de los ciclos formativos sin etiquetas.
/ies/ciclos/ciclo/nombre/text()
- Mostrar las siglas por las que se conocen los ciclos formativos.
/ies/ciclos/ciclo/@id
- Mostrar los años en los que se publicaron los decretos de los ciclos formativos.
/ies/ciclos/ciclo/decretoTitulo/@año
- Mostrar toda la información de los ciclos formativos de grado medio.
/ies/ciclos/ciclo[grado="Medio"]
- Mostrar los nombres de los ciclos formativos de grado superior.
/ies/ciclos/ciclo[grado="Superior"]/nombre
- Mostrar los nombres de los ciclos formativos anteriores a 2010 sin etiquetas.
/ies/ciclos/ciclo[decretoTitulo/@año<2010]/nombre/text()
- Mostrar los nombres de los ciclos formativos de 2008 o de 2010.
/ies/ciclos/ciclo[decretoTitulo/@año=2008 or decretoTitulo/@año=2010]/nombre
Bloque de consultas simples XPath 2
Dado el siguiente documento XML realiza las siguientes consultas con XPath (se eliminan las tildes para evitar problemas de compatibilidad de caracteres):
<?xml version="1.0" encoding="UTF-8"?> <ies> <modulos> <modulo id="0228"> <nombre>Aplicaciones web</nombre> <curso>2</curso> <horasSemanales>4</horasSemanales> <ciclo>SMR</ciclo> </modulo> <modulo id="0372"> <nombre>Gestión de bases de datos</nombre> <curso>1</curso> <horasSemanales>5</horasSemanales> <ciclo>ASIR</ciclo> </modulo> <modulo id="0373"> <nombre>Lenguajes de marcas y sistemas de gestión de información</nombre> <curso>1</curso> <horasSemanales>3</horasSemanales> <ciclo>ASIR</ciclo> <ciclo>DAW</ciclo> </modulo> <modulo id="0376"> <nombre>Implantación de aplicaciones web</nombre> <curso>2</curso> <horasSemanales>5</horasSemanales> <ciclo>ASIR</ciclo> </modulo> </modulos> </ies>
- Mostrar el nombre sin etiquetas de los módulos que se imparten en el instituto.
/ies/modulos/modulo/nombre/text()
- Mostrar el nombre de los módulos que se imparten en ciclo formativo ASIR.
/ies/modulos/modulo[ciclo="ASIR"]/nombre
- Mostrar el nombre de los módulos que se imparten en segundo curso de cualquier ciclo formativo.
/ies/modulos/modulo[curso="2"]/nombre
- Mostrar el nombre de los módulos que tengan menos de 5 horas semanales.
/ies/modulos/modulo[horasSemanales<5]/nombre
- Mostrar el nombre de los módulos que se imparten en el primer curso del ciclo formativo ASIR.
/ies/modulos/modulo[curso=1 and ciclo="ASIR"]/nombre
/ies/modulos/modulo[curso=1][ciclo="ASIR"]/nombre
- Mostrar las horas semanales sin etiquetas de los módulos que se imparten en más de 3 horas semanales
/ies/modulos/modulo[horasSemanales>3]/horasSemanales/text()
Bloque de consultas anidadas XPath 1
Dado el siguiente documento XML realiza las siguientes consultas con XPath (se eliminan las tildes para evitar problemas de compatibilidad de caracteres):
<?xml version="1.0" encoding="UTF-8"?> <ies> <nombre>IES TicArte</nombre> <web>http://www.ticarte.com</web> <ciclos> <ciclo id="ASIR"> <nombre>Administración de Sistemas Informáticos en Red</nombre> <grado>Superior</grado> <decretoTitulo año="2009" /> </ciclo> <ciclo id="DAW"> <nombre>Desarrollo de Aplicaciones Web</nombre> <grado>Superior</grado> <decretoTitulo año="2010" /> </ciclo> <ciclo id="SMR"> <nombre>Sistemas Microinformáticos y Redes</nombre> <grado>Medio</grado> <decretoTitulo año="2008" /> </ciclo> </ciclos> <modulos> <modulo id="0228"> <nombre>Aplicaciones web</nombre> <curso>2</curso> <horasSemanales>4</horasSemanales> <ciclo>SMR</ciclo> </modulo> <modulo id="0372"> <nombre>Gestión de bases de datos</nombre> <curso>1</curso> <horasSemanales>5</horasSemanales> <ciclo>ASIR</ciclo> </modulo> <modulo id="0373"> <nombre>Lenguajes de marcas y sistemas de gestión de información</nombre> <curso>1</curso> <horasSemanales>3</horasSemanales> <ciclo>ASIR</ciclo> <ciclo>DAW</ciclo> </modulo> <modulo id="0376"> <nombre>Implantación de aplicaciones web</nombre> <curso>2</curso> <horasSemanales>5</horasSemanales> <ciclo>ASIR</ciclo> </modulo> </modulos> </ies>
- Mostrar los nombres de los módulos del ciclo de "Sistemas Microinformáticos y Redes".
/ies/ciclos/ciclo[nombre="Sistemas Microinformáticos y Redes"]/@id
/ies/modulos/modulo[ciclo="SMR"]/nombre/text()
/ies/modulos/modulo[ciclo=/ies/ciclos/ciclo[nombre="Sistemas Microinformáticos y Redes"]/@id]/nombre
- Mostrar los nombres de los ciclos formativos que incluyen el módulo "Lenguajes de marcas y sistemas de gestión de información".
/ies/modulos/modulo[nombre="Lenguajes de marcas y sistemas de gestión de información"]/ciclo/text()
/ies/ciclos/ciclo[@id="ASIR"]/nombre
/ies/ciclos/ciclo[@id=/ies/modulos/modulo[nombre="Lenguajes de marcas y sistemas de gestión de información"]/ciclo/text()]/nombre
- Mostrar los nombres de los módulos de ciclos de Grado Superior.
/ies/ciclos/ciclo[grado="Superior"]/@id
/ies/modulos/modulo[ciclo="ASIR"]/nombre
/ies/modulos/modulo[ciclo=/ies/ciclos/ciclo[grado="Superior"]/@id]/nombre
- Mostrar los nombres de los módulos de los ciclos formativos cuyo título se aprobó en 2008.
/ies/ciclos/ciclo[decretoTitulo/@año=2008]/@id
/ies/modulos/modulo[ciclo="SMR"]/nombre
/ies/modulos/modulo[ciclo=/ies/ciclos/ciclo[decretoTitulo/@año=2008]/@id]/nombre
- Mostrar los grados de los ciclos formativos con módulos de primer curso.
/ies/modulos/modulo[curso=1]/ciclo
/ies/ciclos/ciclo[@id="ASIR"]/grado
/ies/ciclos/ciclo[@id=/ies/modulos/modulo[curso=1]/ciclo]/grado
Reescrito a partir de los artículos:
- Ejercicios XPath. Bartolomé Sintes Marcos. Mclibre.org
- Ejercicios de XPath. Víctor Manuel Rivas Santos. Ujaen.es
Ejercicios prácticos de XPath escrito por Rafa Morales está protegido por una licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional