 
  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
