Guía Completa de XPath y XQuery con Ejemplos Prácticos

En esta guía aprenderás las bases de XPath y XQuery, dos tecnologías fundamentales para trabajar con documentos XML. Usaremos el siguiente ejemplo XML, que representa una biblioteca de libros, como base para las consultas.

Archivo XML: Biblioteca

Este archivo contiene información sobre libros, incluidos título, autor, género y fecha de publicación:

<?xml version="1.0" encoding="UTF-8"?>
<biblioteca>
    <libro id="1">
        <titulo>1984</titulo>
        <autor>George Orwell</autor>
        <genero>Distopía</genero>
        <publicado>1949</publicado>
    </libro>
    <libro id="2">
        <titulo>Crimen y Castigo</titulo>
        <autor>Fiódor Dostoyevski</autor>
        <genero>Ficción</genero>
        <publicado>1866</publicado>
    </libro>
    <libro id="3">
        <titulo>El Hobbit</titulo>
        <autor>J.R.R. Tolkien</autor>
        <genero>Fantasía</genero>
        <publicado>1937</publicado>
    </libro>
    <libro id="4">
        <titulo>Un Mundo Feliz</titulo>
        <autor>Aldous Huxley</autor>
        <genero>Distopía</genero>
        <publicado>1932</publicado>
    </libro>
    <libro id="5">
        <titulo>Orgullo y Prejuicio</titulo>
        <autor>Jane Austen</autor>
        <genero>Romance</genero>
        <publicado>1813</publicado>
    </libro>
</biblioteca>

¿Qué es XPath?

XPath es un lenguaje que permite navegar por elementos y atributos en documentos XML. Es útil para seleccionar nodos específicos o un conjunto de nodos.

Ejemplos de XPath

  1. Seleccionar todos los títulos de los libros /biblioteca/libro/titulo Resultado: <titulo>1984</titulo> <titulo>Crimen y Castigo</titulo> <titulo>El Hobbit</titulo> <titulo>Un Mundo Feliz</titulo> <titulo>Orgullo y Prejuicio</titulo>
  2. Obtener los libros publicados antes de 1900 /biblioteca/libro[publicado < 1900] Resultado: <libro id="2"> <titulo>Crimen y Castigo</titulo> <autor>Fiódor Dostoyevski</autor> <genero>Ficción</genero> <publicado>1866</publicado> </libro> <libro id="5"> <titulo>Orgullo y Prejuicio</titulo> <autor>Jane Austen</autor> <genero>Romance</genero> <publicado>1813</publicado> </libro>
  3. Seleccionar los títulos de los libros de género «Distopía» /biblioteca/libro[genero='Distopía']/titulo Resultado: <titulo>1984</titulo> <titulo>Un Mundo Feliz</titulo>
  4. Seleccionar el autor del libro con id=»3″ /biblioteca/libro[@id='3']/autor Resultado: <autor>J.R.R. Tolkien</autor>

¿Qué es XQuery?

XQuery es un lenguaje más avanzado que permite realizar consultas y transformar documentos XML. A diferencia de XPath, XQuery incluye capacidades como ordenar, filtrar y combinar datos.

Ejemplos de XQuery

  1. Listar títulos y autores ordenados alfabéticamente por título for $libro in doc("biblioteca.xml")/biblioteca/libro order by $libro/titulo return <libroOrdenado> <titulo>{ $libro/titulo }</titulo> <autor>{ $libro/autor }</autor> </libroOrdenado> Resultado: <libroOrdenado> <titulo>1984</titulo> <autor>George Orwell</autor> </libroOrdenado> ...
  2. Obtener los libros publicados antes de 1900 y crear una lista personalizada for $libro in doc("biblioteca.xml")/biblioteca/libro where $libro/publicado < 1900 return <antiguoLibro> <titulo>{ $libro/titulo }</titulo> <autor>{ $libro/autor }</autor> <publicado>{ $libro/publicado }</publicado> </antiguoLibro> Resultado: <antiguoLibro> <titulo>Crimen y Castigo</titulo> <autor>Fiódor Dostoyevski</autor> <publicado>1866</publicado> </antiguoLibro> <antiguoLibro> <titulo>Orgullo y Prejuicio</titulo> <autor>Jane Austen</autor> <publicado>1813</publicado> </antiguoLibro>
  3. Agrupar libros por género for $genero in distinct-values(doc("biblioteca.xml")/biblioteca/libro/genero) return <generoCategoria> <genero>{ $genero }</genero> <libros> { for $libro in doc("biblioteca.xml")/biblioteca/libro[genero = $genero] return <libro>{ $libro/titulo }</libro> } </libros> </generoCategoria> Resultado: <generoCategoria> <genero>Distopía</genero> <libros> <libro>1984</libro> <libro>Un Mundo Feliz</libro> </libros> </generoCategoria> ...

¿Cuándo usar XPath y XQuery?

  • XPath: Úsalo para consultas rápidas y directas en un archivo XML. Ideal para selecciones simples y navegación.
  • XQuery: Empléalo cuando necesites transformar datos, crear nuevos documentos XML o realizar consultas complejas, como ordenar y agrupar.

Herramientas para Trabajar con XPath y XQuery

  1. BaseX: Un entorno completo para ejecutar XPath y XQuery.
  2. Oxygen XML Editor: Ideal para desarrollar y probar tus consultas.
  3. Saxon: Procesador potente para ejecutar XQuery.
  4. Navegadores web: Algunos navegadores permiten ejecutar XPath directamente en la consola.

Conclusión

XPath y XQuery son herramientas indispensables para trabajar con XML. Mientras XPath es sencillo y directo, XQuery te ofrece un nivel avanzado para manejar datos estructurados. Prueba los ejemplos de esta guía con tus propios archivos XML para aprender y adaptarte a tus necesidades. ¡El universo de XML está a tu alcance! 🚀

glow in the dark keyboard
Photo by seppe machielsen on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde Tomás González: Formador y Desarrollador Web

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad