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
