Skip to main content
CheckTown
Dev Tools

XPath Tester: consultar documentos XML con XPath

Publicado 6 min de lectura
En este artículo

Que es XPath?

XPath (XML Path Language) es un lenguaje de consulta estandarizado por el W3C para seleccionar nodos de documentos XML. Utiliza una sintaxis similar a rutas para navegar por la estructura jerarquica de un arbol XML, seleccionando elementos, atributos y nodos de texto segun su posicion, nombre o valor.

XPath no es una tecnologia independiente -- esta integrado en otros estandares como XSLT, XQuery y las API del DOM. Todos los navegadores modernos soportan XPath para consultar documentos HTML, y herramientas como Selenium, Scrapy y lxml utilizan ampliamente las expresiones XPath para web scraping y pruebas automatizadas.

Como funcionan las consultas XPath

Una expresion XPath navega por el arbol del documento usando ejes (direcciones), pruebas de nodos (filtros) y predicados (condiciones). Comprender estos tres conceptos le permite construir cualquier consulta.

  • Ejes y rutas -- / selecciona desde la raiz, // selecciona descendientes en cualquier lugar, .. sube al padre, y los ejes nombrados como following-sibling:: navegan relativo al nodo actual
  • Predicados y filtros -- los corchetes [] agregan condiciones: //book[price>30] selecciona libros con precio superior a 30, mientras que //div[@class='main'] selecciona divs con un atributo de clase especifico
  • Funciones y operadores -- XPath proporciona funciones integradas como contains(), starts-with(), normalize-space() y count() para manipulacion de cadenas, comparacion y conteo de nodos

Pruébalo gratis — sin registro

Probar una consulta XPath →

Cuando usar XPath

XPath es esencial siempre que necesite extraer datos especificos de documentos XML o HTML programaticamente.

  • Web scraping -- extraiga precios de productos, titulos de articulos o enlaces de paginas web usando expresiones XPath en herramientas como Scrapy, Puppeteer o las consolas de desarrollador del navegador
  • Configuracion XML -- consulte y valide archivos de configuracion complejos como Maven pom.xml, manifiestos Android o contextos Spring XML para encontrar configuraciones o dependencias especificas
  • Transformaciones XSLT -- seleccione nodos para transformacion en hojas de estilo XSLT, que dependen enteramente de las expresiones XPath para hacer coincidir y procesar elementos XML en diferentes formatos de salida

Preguntas frecuentes

Cuando debo usar XPath en lugar de selectores CSS?

Los selectores CSS son mas simples y rapidos para la seleccion basica de elementos por etiqueta, clase o ID. Elija XPath cuando necesite seleccionar por contenido de texto (//a[contains(text(),'Iniciar sesion')]), navegar hacia nodos padre, usar predicados complejos o trabajar con documentos XML (no HTML). XPath tambien es requerido en contextos XSLT y XQuery.

Que cambio entre XPath 1.0 y 2.0?

XPath 2.0 agrego un sistema de tipos mas rico (fechas, secuencias, expresiones regulares), expresiones condicionales (if/then/else), expresiones cuantificadas (some/every) y expresiones de rango. Sin embargo, la mayoria de los navegadores y herramientas de scraping solo soportan XPath 1.0. Use las funciones de XPath 2.0 en herramientas del lado del servidor como Saxon o cuando trabaje con XSLT 2.0.

Como manejar espacios de nombres XML en XPath?

Los elementos con espacio de nombres requieren un mapeo de prefijo. En la mayoria de las API, registra un prefijo de espacio de nombres (ej. ns='http://example.com') y luego consulta usando ese prefijo: //ns:book/ns:title. Sin registrar el espacio de nombres, //book no coincidira con elementos en un espacio de nombres aunque el nombre local sea 'book'. Algunas herramientas soportan local-name() como alternativa: //*[local-name()='book'].

Herramientas relacionadas