Herramientas XML

probador de XPathcomprueba qué selecciona tu consulta

Evalúa con el botón o Ctrl/Cmd+Enter. Tras cambiar entradas, asociaciones o vista, vuelve a ejecutar.

probador de XPath

Entrada XML

Resultado

El XML y las consultas se procesan en este navegador; no se envía el documento a un servidor.

Usa un prefijo ASCII, por ejemplo {"b":"urn:books"}; puede ser distinto del original.

XPath 1.0; ejecución manual con Ctrl/Cmd+Enter. Los escalares JSON usan cadenas para conservar NaN e Infinity.

Resultado desactualizado; vuelve a evaluar para exportar.

Un probador de XPath ayuda cuando una consulta funciona en el ejemplo pero no encuentra nada en el XML real. Un espacio de nombres predeterminado, una condición de atributo o la profundidad del elemento pueden explicar la diferencia.

Puedes evaluar XPath sin formatear primero el documento. La expresión XPath trabaja sobre el texto original; así puedes comparar consultas XML sin eliminar espacios que influyen en el resultado.

Por qué usar este probador de XPath

Compara las ramas seleccionadas

Este probador de XPath muestra los mismos títulos como fragmentos XML, valores de texto o rutas absolutas. Así distingues el elemento elegido del texto que quieres extraer, sin modificar la fuente.

Dos ramas de título seleccionadas en un árbol XML se extraen como dos resultados.

Asocia los nombres por su URI

Vincula b con urn:books y usa //b:book aunque el documento emplee otro prefijo. Los elementos con el mismo nombre local y otra URI permanecen separados.

Nodos del mismo nombre en dos espacios distintos; solo se selecciona el grupo asociado.

Tres detalles que cambian la consulta

01

Pon un alias al espacio predeterminado

Si aparece xmlns="urn:books", introduce {"b":"urn:books"} y consulta //b:book. //book solo selecciona elementos sin espacio de nombres.

02

Distingue texto de text()

La vista de texto obtiene el valor completo de cada elemento, incluidos sus descendientes. //title/text() selecciona los nodos de texto directos; en contenido mixto no siempre produce lo mismo.

03

Repite la evaluación antes de exportar

Cambiar XML, expresión, asociaciones o vista desactiva la exportación. Ejecuta de nuevo. La vista añade 50 resultados por vez; la copia y la descarga incluyen todos los resultados de la ejecución correcta.

Seleccionar, extraer y rastrear

Cuatro tipos de resultado

Además de conjuntos de nodos, se admiten string(//title), count(//book) y boolean(//missing). El JSON guarda el tipo y usa cadenas para los valores, de modo que NaN e Infinity no se conviertan silenciosamente en null.

Atributos y condiciones

//book[@id="b1"] filtra elementos, //@id extrae atributos y //book[price>15]/title aplica una comparación numérica. Cero coincidencias es un resultado válido con count 0 y un array values vacío.

Rutas que puedes verificar

Las posiciones distinguen hermanos con el mismo nombre. Para elementos con espacio de nombres se usan local-name() y namespace-uri(), sin depender del prefijo elegido. Cambiar la estructura del documento puede desplazar esas posiciones.

Versiones y límites reales

Solo XPath 1.0
El probador de XPath utiliza el motor del navegador. No admite XPath 2.0/3.1, matches(), ends-with(), variables ni XQuery. El eje namespace:: no garantiza resultados iguales entre navegadores.
XML estricto, sin reparación
Solo se acepta XML 1.0 bien formado. Se rechazan DTD y entidades externas; las declaraciones de codificación deben usar UTF-8. No se completan etiquetas HTML ni se eliminan espacios del texto original. El texto adyacente y CDATA se unen para el modelo XPath. Al serializar nodos, los marcadores CDATA pueden convertirse en texto escapado sin cambiar los caracteres.
Prefijos explícitos
El objeto JSON asocia prefijos ASCII con URI no vacías. No se permiten el prefijo vacío ni xmlns; xml queda reservado a su URI estándar. Un prefijo no ASCII en el documento puede consultarse con un alias ASCII de la misma URI.
Ejecución síncrona acotada
Límites: 100.000 caracteres de entrada, 2.000 nodos XML con atributos y texto, profundidad 100, expresión de 2.000 caracteres, 1.000 coincidencias y 2.000.000 de caracteres de salida. Si se supera un límite, falla todo el resultado. La API síncrona no tiene un tiempo máximo forzado; una consulta compleja puede detener brevemente la pestaña.
Entrada y recuperación
Se ofrece texto pegado, no importación URL, subida de archivos, enlaces guardados ni validación de esquema. Limpiar y Ejemplo muestran una vista previa. Aplicar sustituye XML y opciones; Deshacer recupera una vez entradas y resultado.

Preguntas sobre el probador de XPath

¿Qué versión de XPath se admite?

XPath 1.0, mediante el motor real del navegador. Las funciones de XPath 2.0 como matches() requieren otro motor; que una expresión falle no implica que el XML sea incorrecto.

¿Cómo selecciono elementos por atributo?

//book[@id="b1"] selecciona un elemento por atributo y //book/@id devuelve el valor. Los nombres distinguen mayúsculas; un atributo sin prefijo no hereda el espacio de nombres predeterminado.

¿Qué diferencia hay entre / y // en XPath?

/ avanza al paso directo siguiente. // busca descendientes desde esa posición: /library/book parte de la raíz, mientras que //book también alcanza niveles más profundos.

¿Puede XPath devolver texto, números o booleanos?

Sí: string(//title), count(//book) y boolean(//book). La exportación conserva el tipo y el valor como cadena. false, una cadena vacía y NaN son resultados correctos.

¿Por qué no hay coincidencias en un documento con espacios de nombres?

El espacio predeterminado se aplica a elementos XML sin prefijo, pero no a nombres sin prefijo en XPath 1.0. Asocia un alias a la URI y úsalo en la expresión.

¿Algo no está claro?

Comprueba la siguiente expresión

El probador de XPath deja visibles el tipo y las asociaciones de nombres. Guarda la expresión correcta junto con su muestra XML para reproducir diferencias posteriores.