EniunEniunEniunEniun
  • Inicio
  • Blog
  • Cursos
  • Contactar
  • DTD
✕
            Sin resultados Ver todos los resultados

            Tutorial XPath (XML Path Language)

            • Inicio
            • XML y otros formatos XPath
            • Tutorial XPath (XML Path Language)
            05/07/2023
            Tutorial XPath

            Tutorial XPath

            En este tutorial de XPath aprenderás los conceptos básicos de este lenguaje de consulta y navegación. XPath permite localizar y seleccionar elementos o atributos en documentos XML. Verás cómo funcionan los nodos (elementos, atributos y texto), cómo usar operadores y predicados para consultas más detalladas, y estudiarás funciones integradas que facilitan manipular datos.

            Contenidos del artículo

            Toggle
            • 1. Tutorial XPath: Introducción
              • 1.1. Usos de XPath
              • 1.2. Cómo ejecuto una consulta XPath
            • 2. El árbol de XPath
            • 3. Tipos de nodos en un árbol XPath
            • 4. Sintaxis y notación XPath
            • 5. Trayecto de búsqueda
              • 5.1. Ejes
              • 5.2. Nodos de comprobación o búsqueda
              • 5.3. Predicados
              • 5.4. Operadores aritméticos, lógicos y de comparación.
              • 5.5. Funciones XPath
              • 5.6. Trayecto de búsqueda relativo y absoluto
            • 6. Tutorial XPath: Ejercicios resueltos

            Aunque XPath se creó para XML, también es clave en lenguajes y tecnologías como HTML, JSON (en variantes como JSONPath) y XSLT, donde ayuda a estructurar y filtrar información. Por tanto, su importancia sigue vigente en tareas de extracción de datos, pruebas automatizadas y procesamiento de documentos.

            Si aún no sabes cómo crear un documento XML te recomendamos comenzar el con el tutorial de introducción a XML.

            1. Tutorial XPath: Introducción

            La necesidad de manejar documentos XML de manera efectiva llevó al desarrollo de XPath (XML Path Language) por parte del W3C, solo un año después de la especificación XML. XPath es un lenguaje declarativo que permite localizar y dirigirse a partes específicas de un documento XML.

            1.1. Usos de XPath

            XPath se utiliza comúnmente en varios contextos y lenguajes de programación para la manipulación y selección de nodos en documentos XML. Algunos de los lenguajes y tecnologías donde XPath es comúnmente implementado son las siguientes:

            XPath en XML:

            • XPath es parte integral de XML y se utiliza directamente en documentos XML para la selección de nodos.

            XSLT (Extensible Stylesheet Language Transformations):

            • XSLT utiliza XPath para definir patrones de búsqueda y transformaciones en documentos XML. XPath se utiliza para seleccionar y manipular nodos durante la transformación.

            XQuery (XML Query Language):

            • XQuery es un lenguaje de consulta diseñado para extraer y manipular datos desde documentos XML. Utiliza XPath para especificar la parte del documento sobre la cual se realiza la consulta.

            Selenium (WebDriver):

            • Selenium, una herramienta para automatizar pruebas en navegadores web, utiliza XPath para localizar elementos en una página web. Se utiliza comúnmente para interactuar con elementos HTML en aplicaciones web.

            DOM (Document Object Model):

            • Al programar con DOM, ya sea en JavaScript, Java u otros lenguajes, XPath puede ser utilizado para navegar y seleccionar elementos en la representación en memoria de un documento XML.

            XPath en programación con lenguajes como Python, Java, C#, etc.:

            • Muchos lenguajes de programación proporcionan bibliotecas o módulos que permiten utilizar XPath para trabajar con documentos XML. Por ejemplo, en Python, la biblioteca lxml es comúnmente utilizada para trabajar con XPath.

            Browsers y herramientas de desarrollo web:

            • XPath se usa en herramientas de desarrollo web y en navegadores para seleccionar elementos en el DOM. Es especialmente útil en pruebas de automatización y web scraping.

            1.2. Cómo ejecuto una consulta XPath

            Para ejecutar una consulta XPath en un documento XML, puedes utilizar diferentes herramientas:

            Herramientas online:

            • Puedes utilizar herramientas como freeformatter.com que te permiten insertar el documento XML y la expresión XPath, y te mostrarán el resultado de la consulta. Simplemente busca en un motor de búsqueda como Google «XPath Tester» y encontrarás varias opciones para probar tus consultas. Ten en cuenta que, a veces, algunas algunas herramientas no reconocen todas las funciones XPath, por ejemplo string(), number(), name(), string-length() etc.

            Editor de código con algún complemento:

            • Puedes usar cualquier editor de código e instalar alguna extensión que te permita ejecutar consultas XPath. Por ejemplo, VS Code con alguna extensión como «XML Tools». Veamos cómo hacerlo:

            Instala la extensión XML Tools en VS Code:

            • Abre Visual Studio Code.
            • Ve a la vista de Extensiones haciendo clic en el icono cuadrado en la barra lateral o presionando Ctrl+Shift+X.
            • Busca «XML Tools» en la barra de búsqueda de Extensiones.
            • Instala la extensión «XML Tools».

            Abre un archivo XML:

            • Crea o abre un archivo XML en Visual Studio Code.

            Evaluación de XPath:

            • Coloca el cursor en un archivo XML.
            • Presiona Ctrl+Shift+P para abrir la Paleta de Comandos (command palette).
            • Escribe «XML Tools» y selecciona «Evaluate XPath» o presionando Ctrl+Shift+Alt+X.
            • Inserta tu expresión XPath y se evaluará en el documento activo.
            xpath evaluate vscode

            Ten en cuenta también que algunas funciones, por ejemplo max() u otras pueden no estar reconocidas por la extensión. Por tanto, prueba tus expresiones en varias herramientas para más fiabilidad. Además, en el caso de usar la extensión XML Tools, cuando haces una consulta si sigues usando la misma consola y vuelves a realizar otra consulta, en ocasiones, da errores y es necesario cerrar la consola y volverla a iniciar.

            2. El árbol de XPath

            El árbol XPath, también conocido como árbol de nodos (node tree), es una representación jerárquica (hierarchical representation or hierarchical structure) de un documento XML que nos permite visualizar y navegar por su estructura. En este árbol, cada nodo representa un elemento, atributo, texto u otro tipo de entidad dentro del documento.

            El nodo raíz del árbol XPath es el elemento principal (root element) del documento. A partir de este nodo raíz, se ramifican los nodos hijos que representan los elementos secundarios. Cada elemento puede tener nodos hijos, y así sucesivamente, formando una estructura en forma de árbol.

            3. Tipos de nodos en un árbol XPath

            Los diferentes tipos de nodos en un árbol XPath nos permiten acceder y manipular de manera selectiva los elementos, atributos, texto y otros componentes de un documento XML utilizando expresiones XPath.

            Los nodos de un árbol XPath pueden ser de siete tipos:

            1. Nodo de elemento (Element Node): Representa un elemento en el documento XML, como una etiqueta de apertura y cierre. Ejemplo: <libro></libro>
            2. Nodo de atributo (Attribute Node): Representa un atributo de un elemento. Ejemplo: id="123"
            3. Nodo de texto (Text Node): Representa el contenido de texto dentro de un elemento. Ejemplo: "Este es el contenido de texto".
            4. Nodo de espacio de nombres (Namespace Node): Representa un espacio de nombres utilizado en el documento XML. Ejemplo: xmlns:prefix="http://www.example.com"
            5. Nodo de procesamiento (Processing Instruction Node): Representa una instrucción de procesamiento en el documento XML. Ejemplo: <?xml version="1.0" encoding="UTF-8"?>
            6. Nodo de comentario (Comment Node): Representa un comentario dentro del documento XML. Ejemplo: <!-- Este es un comentario -->
            7. Nodo de documento o raíz de documento (Document Node or Root Node): Representa el nodo raíz del documento XML. Es el nodo principal que contiene todos los demás nodos.

            4. Sintaxis y notación XPath

            XPath emplea una sintaxis que se basa en la barra diagonal (/) seguida de una lista de nombres de elementos hijo. Esta secuencia de nombres de elementos describe un camino específico a través del documento XML, permitiendo seleccionar los elementos sucesivos que coinciden con el recorrido especificado. De esta manera, XPath utiliza expresiones de patrón para identificar los nodos deseados dentro del documento.

            5. Trayecto de búsqueda

            El trayecto de búsqueda se refiere a la secuencia de elementos y relaciones utilizados para localizar nodos específicos en un documento XML. Se establece mediante una combinación de nodos y operadores XPath para crear una ruta o camino que se sigue desde el nodo raíz hasta el nodo deseado.

            En todo trayecto de búsqueda de XPath se pueden distinguir tres elementos básicos llamados Ejes, Nodos y Predicados.

            5.1. Ejes

            Los ejes en XPath son elementos que se usan para establecer relaciones y navegar a través de los nodos de un documento XML. Cada eje define una dirección o perspectiva particular desde la cual se pueden seleccionar nodos.

            Existen 13 tipos de ejes en XPath que se utilizan para realizar búsquedas específicas, siendo los más habituales los siguientes:

            1. Eje hijo (child axis): Representado por el símbolo /, este eje selecciona todos los nodos hijos directos de un nodo en el camino de búsqueda.
            2. Eje descendiente (descendant axis): Representado por el símbolo //, este eje selecciona todos los nodos descendientes, es decir, los nodos hijos, los hijos de los hijos y así sucesivamente, de un nodo en el camino de búsqueda.
            3. Eje padre (parent axis): Representado por .., este eje selecciona el nodo padre de un nodo en el camino de búsqueda.
            4. Eje ancestro (ancestor axis): Representado por ancestor::, este eje selecciona todos los nodos ancestros, es decir, los nodos padre, abuelos, bisabuelos y así sucesivamente, de un nodo en el camino de búsqueda.
            5. Eje siguiente (following axis): Representado por following::, este eje selecciona todos los nodos que aparecen después de un nodo en el documento.
            6. Eje anterior (preceding axis): Representado por preceding::, este eje selecciona todos los nodos que aparecen antes de un nodo en el documento.
            7. Eje hermanos posteriores (following-sibling): Representado por following-sibling::, este eje selecciona todos los nodos hermanos que aparecen después del nodo de contexto actual en el mismo nivel jerárquico.
            8. Eje hermanos anteriores (preceding-sibling): Representado por preceding-sibling::, este eje selecciona todos los nodos hermanos que aparecen antes del nodo de contexto actual en el mismo nivel jerárquico.

            Veamos algunos ejemplos de cómo utilizar los ejes en XPath:

            1.Ejemplo: Eje directo (/)

            • /library: Selecciona el nodo «library» que es el nodo raíz del documento XML.
            • /library/book: Selecciona todos los nodos «book» que son hijos directos del nodo «library».

            2. Ejemplo: Eje descendente (//)

            • //book: Selecciona todos los nodos «book» en el documento XML, sin importar su ubicación.

            3. Ejemplo: Eje padre (..)

            • //book/..: Selecciona el nodo padre de todos los nodos «book» en el documento XML.

            4. Ejemplo: Eje ancestro (ancestor::)

            • //book/ancestor::library: Selecciona todos los nodos «library» que son ancestros (nodos padre, abuelos, bisabuelos…) del nodo «book» en el documento XML.

            5. Ejemplo: Eje siguiente (following::)

            • //book/following::publisher: Selecciona todos los nodos «publisher» que aparecen después de los nodos «book» en el documento XML.

            6. Ejemplo: Eje anterior (preceding::)

            • //book/preceding::year: Selecciona todos los nodos «year» que aparecen antes de los nodos «book» en el documento XML.

            7. Ejemplo: Eje hermano siguiente (following-sibling::)

            • //author/following-sibling::year: Selecciona todos los nodos «year» que son hermanos siguientes de los nodos «author» en el documento XML.

            8. Ejemplo: Eje hermano anterior (preceding-sibling::)

            • //author/preceding-sibling::title: Selecciona todos los nodos «title» que son hermanos anteriores de los nodos «author» en el documento XML.

            Práctica

            Practica los ejemplos anteriores con el siguiente código XML para verlo más claro:

            <?xml version="1.0" encoding="UTF-8"?>
            <library>
                <book>
                    <title>The Great Gatsby</title>
                    <author>F. Scott Fitzgerald</author>
                    <year>1925</year>
                    <publisher>Scribner</publisher>
                </book>
                <book>
                    <title>1984</title>
                    <author>George Orwell</author>
                    <year>1949</year>
                    <publisher>Secker and Warburg</publisher>
                </book>
                <book>
                    <title>To Kill a Mockingbird</title>
                    <author>Harper Lee</author>
                    <year>1960</year>
                    <publisher>J. B. Lippincott and Co.</publisher>
                </book>
            </library>

            5.2. Nodos de comprobación o búsqueda

            Los nodos de comprobación o búsqueda en XPath se utilizan para evaluar condiciones y seleccionar nodos específicos en un documento XML. Estos nodos permiten realizar comprobaciones sobre los atributos, el contenido de texto y otros aspectos de los elementos XML.

            Veamos algunos nodos de comprobación comunes en XPath:

            1. Nodos de atributo: Se utilizan para seleccionar nodos basados en los valores de sus atributos. Por ejemplo, @id selecciona todos los nodos que tienen un atributo id.
            2. Nodos de texto: Se utilizan para seleccionar nodos que contienen un texto específico. Por ejemplo, text() selecciona todos los nodos de texto en el documento.
            3. Nodos de posición: Se utilizan para seleccionar nodos basados en su posición en el documento. Por ejemplo, [1] selecciona el primer nodo que cumple con los criterios de búsqueda.
            4. Nodos de comparación: Se utilizan para realizar comparaciones entre nodos y valores. Por ejemplo, >, <, =, etc., se utilizan para comparar valores numéricos o alfanuméricos.
            5. Nodos lógicos: Se utilizan para combinar condiciones y realizar operaciones lógicas. Por ejemplo, and, or, not se utilizan para realizar operaciones booleanas.
            6. Nodos de tipo node(): Se utilizan para seleccionar cualquier tipo de nodo, incluyendo elementos, atributos, texto, etc.
            7. Nodos comodín *: Se utilizan para seleccionar cualquier elemento en el documento sin importar su nombre.

            Estos nodos de comprobación o búsqueda en XPath son fundamentales para construir expresiones XPath más complejas y selectivas, permitiendo así realizar búsquedas precisas y específicas en un documento XML. Veamos algunos ejemplos de cómo utilizar los nodos en XPath incluyendo predicados, que se explican el siguiente punto del tutorial.

            Los predicados en XPath son condiciones o filtros que se aplican a los ejes de búsqueda para seleccionar un conjunto específico de nodos en un documento XML. Estos predicados permiten restringir la selección de nodos basándose en condiciones específicas, como valores de atributos, contenido de nodos de texto o posición en el documento. Se escriben entre corchetes [ ]..

            1.Ejemplo: Nodos de atributo @atrib

            • //@id: Selecciona todos los nodos que tienen un atributo «id» en cualquier lugar del documento.
            • //book[@category='fiction']: Selecciona todos los nodos «book» que tienen el atributo «category» con el valor «fiction».

            2. Ejemplo: Nodos de texto text()

            • //title[text()='Introduction to XPath']: Selecciona el nodo «title» que contiene el texto «Introduction to XPath».

            3. Ejemplo: Nodos de posición [1],[2]…

            • //book[1]: Selecciona el primer nodo «book» en el documento.
            • //book[last()]: Selecciona el último nodo «book» en el documento.

            4. Ejemplo: Nodos de comparación >, <, =…

            • //book[price > 50]: Selecciona todos los libros que tienen un «price» mayor que 50.

            5. Ejemplo: Nodos lógicos and y or

            • //book[@category='fiction' and price > 20]: Selecciona todos los nodos «book» que tienen la categoría «fiction» y un precio mayor que 20.

            6. Ejemplo: Nodos de tipo node()

            • //node(): Selecciona todos los nodos en el documento, incluyendo elementos, atributos y texto.

            7. Ejemplo: Nodos comodín *

            • //book/*: Selecciona todos los elementos hijos de los nodos «book» en el documento.

            Práctica

            Practica los ejemplos anteriores con el siguiente código XML para entenderlo mejor:

            <?xml version="1.0" encoding="UTF-8"?>
            <library>
                <book id="1" category="fiction">
                    <title>Introduction to XPath</title>
                    <author>John Doe</author>
                    <price>29.99</price>
                </book>
                <book id="2" category="non-fiction">
                    <title>XML Basics</title>
                    <author>Jane Smith</author>
                    <price>19.95</price>
                </book>
                <book id="3" category="fiction">
                    <title>XPath in Depth</title>
                    <author>Michael Johnson</author>
                    <price>59.99</price>
                </book>
                <book id="4" category="non-fiction">
                    <title>XML for Beginners</title>
                    <author>Emily Brown</author>
                    <price>14.99</price>
                </book>
            </library>

            5.3. Predicados

            Los predicados en XPath son elementos que permiten restringir el conjunto de nodos seleccionados por un eje, basándose en ciertas condiciones. Estos predicados ofrecen mayor detalle y permiten filtrar un conjunto de nodos específico.

            Para la obtención de un predicado se recurre a identificaciones o a las funciones propias de XPath escritas entre corchetes ([….]).En los apartados anteriores ya se han mostrado algunos ejemplos de predicados que nos han permitido refinar aún más la selección de nodos según múltiples condiciones.

            5.4. Operadores aritméticos, lógicos y de comparación.

            En las tablas siguientes, puede verse un resumen de los operadores disponibles, los cuales se clasifican en operadores aritméticos, lógicos y de comparación.

            Operadores aritméticos → Función
            + → suma
            - → resta
            * → multiplicación
            div → resultado entero de la división
            mod → módulo
            Operadores de comparación → Función
            = → igual
            != → no igual
            < → menor que; en XSLT, se necesita el operador &lt;
            > → mayor que; en XSLT, se recomienda usar el operador &gt;
            <= → menor que o igual; en XSLT, se necesita el operador &lt;
            >= → Mayor que o igual; en XSLT, se recomienda usar el operador &gt;
            Operadores lógicos → Función
            and → Operador Y lógico
            or → Operador O lógico

            5.5. Funciones XPath

            Las funciones en XPath son herramientas incorporadas que permiten realizar operaciones y manipulaciones en los nodos y valores de un documento XML. Estas funciones proporcionan una funcionalidad adicional para buscar, filtrar, transformar y realizar cálculos en los datos XML. Algunas herramientas no reconocen todas las funciones.

            Algunas funciones comunes en XPath son las que se muestran en la siguiente tabla:

            FunciónDescripción
            text()Devuelve el contenido de texto de un nodo.
            node()Selecciona el propio nodo. No se suele usar.
            name()Devuelve el nombre del nodo actual.
            string()Convierte cualquier valor a cadena.
            string-length()Devuelve la cantidad de caracteres de la cadena.
            concat()Concatena varias cadenas de texto en una sola.
            contains()Verifica si una cadena de texto está presente en otra.
            starts-with()Verifica si una cadena de texto comienza con otra.
            substring()Extrae una parte de una cadena de texto.
            substring-after()Devuelve la subcadena que aparece después de otra subcadena en una cadena de texto.
            substring-before()Devuelve la subcadena que aparece antes de otra subcadena en una cadena de texto.
            normalize-space()Elimina espacios en blanco adicionales en una cadena de texto.
            count()Retorna la cantidad de nodos de un conjunto.
            sum()Calcula la suma de los valores numéricos de los nodos seleccionados.
            round()Redondea un número al entero más cercano.
            floor()Redondea un número hacia abajo al entero más cercano.
            ceiling()Redondea un número hacia arriba al entero más cercano.
            position()Devuelve la posición del nodo actual en su contexto.
            last()Devuelve la posición del último nodo en su contexto.
            not()Niega una expresión booleana.
            and()Realiza una operación lógica AND entre dos expresiones booleanas.
            or()Realiza una operación lógica OR entre dos expresiones booleanas.
            max()Devuelve el mayor de los valores de una secuencia de valores.
            min()Devuelve el valor mínimo de la secuencia de valores.
            Tabla 1. Funciones XPath

            Veamos algunos ejemplos:

            1.Ejemplo de text():

            • XPath: //p/text()
            • Resultado: Devuelve el contenido de texto de todos los elementos <p> en el documento.

            2. Ejemplo de concat():

            • XPath: concat('Hola', ' ', 'Mundo')
            • Resultado: Devuelve la cadena de texto «Hola Mundo».

            3. Ejemplo de contains():

            • XPath: //div[contains(@class, 'active')]
            • Resultado: Devuelve todos los elementos <div> que contienen el atributo class con el valor «active».

            4. Ejemplo de substring():

            • XPath: substring('Hello World', 7, 5)
            • Resultado: Devuelve la subcadena «World» de la cadena de texto «Hello World».

            5. Ejemplo de count():

            • XPath: count(//li)
            • Resultado: Devuelve el número de elementos <li> en el documento.

            6. Ejemplo de string-length():

            • XPath: string-length('Hello World')
            • Resultado: Devuelve la longitud de la cadena de texto «Hello World», en este caso, 11.

            7. Ejemplo de last():

            • XPath: //li[last()]
            • Resultado: Devuelve el último elemento <li> en el documento.

            5.6. Trayecto de búsqueda relativo y absoluto

            Los trayectos de búsqueda en XPath pueden ser absolutos o relativos, dependiendo de cómo se defina la ruta de búsqueda en relación con el contexto actual.

            • El trayecto de búsqueda absoluto comienza desde el nodo raíz del documento XML y especifica la ruta completa hasta el nodo deseado. Se utiliza una barra diagonal (/) al inicio del trayecto para indicar que se parte desde el nodo raíz. Por ejemplo, /libros/libro representa un trayecto de búsqueda absoluto que selecciona todos los elementos «libro» que son hijos directos del elemento «libros».
            • El trayecto de búsqueda relativo se define en relación con el nodo actual o de referencia. No se utiliza una barra diagonal al inicio del trayecto. En su lugar, se especifica la ruta relativa desde el nodo actual hasta el nodo deseado. Por ejemplo, libro/titulo representa un trayecto de búsqueda relativo que selecciona todos los elementos «titulo» que son hijos directos del elemento «libro» en el contexto actual. Por tanto, para un trayecto de búsqueda relativo como «libro/titulo» funcionaría de manera esperada bajo ciertas condiciones:
              • libro/titulo: Este trayecto de búsqueda relativo seleccionaría todos los elementos «titulo» que son hijos directos del elemento «libro» en el contexto actual. Funcionaría correctamente si se usa en el contexto apropiado, por ejemplo, si el contexto actual ya es un elemento «libro». Si actualmente nos encontramos en el elemento root «libros», este trayecto de búsqueda no funcionaría.
              • //libro/titulo: Este trayecto de búsqueda relativo con doble barra diagonal seleccionaría todos los elementos «titulo» que son descendientes (no necesariamente hijos directos) de cualquier elemento «libro» en el documento XML. Esta notación es más general y seleccionará elementos «titulo» en cualquier nivel de anidamiento bajo «libro».
              • /libros/libro/titulo: Este es un trayecto de búsqueda absoluto que especifica la ruta completa desde el nodo raíz hasta «titulo». En este caso, funcionaría si el nodo raíz es «libros».

            Práctica

            Practica los trayectos de búsqueda anteriores con el siguiente código para verlo más claro:

            <?xml version="1.0" encoding="UTF-8"?>
            <libros>
                <libro>
                    <titulo>El Gran Gatsby</titulo>
                    <autor>F. Scott Fitzgerald</autor>
                </libro>
                <libro>
                    <titulo>1984</titulo>
                    <autor>George Orwell</autor>
                </libro>
                <libro>
                    <titulo>Cien años de soledad</titulo>
                    <autor>Gabriel García Márquez</autor>
                </libro>
            </libros>

            La elección entre un trayecto de búsqueda absoluto o relativo depende de la estructura del documento XML y del objetivo de la búsqueda. Los trayectos de búsqueda absolutos son útiles cuando se necesita especificar una ruta precisa desde el nodo raíz. Los trayectos de búsqueda relativos son más flexibles y se adaptan al contexto actual, lo que facilita la navegación dentro de la estructura del documento.

            6. Tutorial XPath: Ejercicios resueltos

            Con este conjunto de ejercicios podrás poner en práctica tus habilidades en XPath. Aprenderás a navegar y buscar elementos en documentos XML utilizando diferentes ejes, predicados y funciones XPath.

            Ver ejercicios XPath resueltos

            Esperamos que este tutorial de XPath te haya sido útil para encontrar fácilmente la información que necesitas en documentos XML. Además, si te interesa el mundo de XML, puede que te resulte interesante visitar el tutorial de DTD o el tutorial de XSD para la validación de XML. Recuerda que cuentas con una sección con diferentes ejercicios resueltos para que puedas comprobar tu aprendizaje sobre XPath.

            Navegación de entradas

            Ejercicios XPath: prácticas resueltas y ejemplos tipo examen →

            Cursos XML y otros formatos

            • 1. XML
              • Ejercicios resueltos XML
            • 2. DTD
              • Ejercicios DTD
            • 3. XPath
              • Ejercicios XPath
            • 4. XSD
              • Ejercicios XSD
            • 5. XSLT
              • Ejercicios XSLT
            • 6. RSS
            • 7. JSON
              • Ejercicios JSON
            • 8. Markdown
              • Ejercicios Markdown
            Ver más cursos

            ¡Invítanos a un café!

            ¿Cómo donar?
            Ayúdanos a seguir creando contenido relacionado con la informática y el diseño y desarrollo web en Eniun. ¡Gracias por tu apoyo!
            Eniun

            info@eniun.com
            Reportar un error

            Servicios

            Desarrollo Web
            Diseño Web
            Marketing Digital
            Social Media
            Experiencia de Usuario
            Cursos formativos

            Suscríbete a la newsletter

            Únete a nuestra comunidad para recibir contenido exclusivo y relevante para diseñadores y desarrolladores web.

            Apuntarme

            © 2026 Eniun | Política de privacidad y cookies

                      Sin resultados Ver todos los resultados