Probador de XPath
Documento XML o HTML
Pega XML o HTML con hasta 1.000.000 de caracteres. La evaluación se realiza en este navegador con XPath 1.0.
XPath 1.0 absoluto o relativo. Los prefijos declarados en el documento se registran automáticamente; el espacio de nombres por defecto está disponible con el prefijo d.
Escribir XPath para scraping o XSLT es puro ensayo y error si no tienes un entorno de pruebas en vivo. Este probador recibe tu XML o HTML en un panel y tu expresión en otro, evalúa XPath 1.0 con el propio motor de tu navegador y lista cada nodo coincidente con su tipo, atributos, contenido de texto y marcado serializado. Las expresiones escalares como count(//book) devuelven su valor directamente, y los prefijos de espacios de nombres declarados en el documento se registran por ti. Todo se ejecuta en tu navegador: el documento nunca se sube a ningún servidor.
Cómo probar una expresión XPath
-
1
Pega XML o HTML
La detección automática cambia al análisis HTML tolerante cuando ve un doctype o una raíz HTML; también puedes forzar el modo XML o HTML.
-
2
Escribe tu XPath
Absoluta (`/library/book`) o relativa (`//div[@class='card']`), cualquier expresión XPath 1.0.
-
3
Evalúa
El motor XPath de tu navegador ejecuta la consulta en local; no se envía nada a ningún servidor.
-
4
Inspecciona los resultados
Cada coincidencia muestra el tipo de nodo, los atributos, el texto recortado y el marcado serializado; se listan hasta 200 coincidencias.
Lo esencial de XPath 1.0
| Expresión | Qué selecciona |
|---|---|
/books/book |
Los <book> hijos de la raíz <books> |
//book |
Todos los <book> en cualquier punto del documento |
//book[@id='42'] |
Los <book> con atributo id igual a 42 |
//book[1] |
El primer <book> de cada padre (no del documento) |
(//book)[1] |
El primer <book> de todo el documento |
//book[title='1984'] |
Los <book> cuyo texto de <title> es “1984” |
//book/@id |
Los atributos id de todos los elementos <book> |
//book[position() > 1] |
Todos los <book> menos el primero |
//book[last()] |
El último <book> de cada padre |
Las expresiones escalares también funcionan: count(//book) devuelve un número, string(//title) una cadena y boolean(//book[@id]) verdadero o falso. El probador muestra esos valores directamente en lugar de una lista de nodos.
Ejes habituales más allá de child
ancestor::, todos los ancestrosfollowing-sibling::, los hermanos posteriores al nodo actualpreceding-sibling::, los hermanos anterioresdescendant::, todos los descendientesattribute::(abreviado@), los atributos del nodo actualparent::(abreviado..), el elemento padre
Particularidades del HTML
El HTML no es XML estricto, así que el probador lo analiza con tolerancia usando el analizador HTML de tu navegador en lugar del XML estricto. El modo HTML se detecta automáticamente a partir de <!DOCTYPE html> o de una raíz <html>, y puedes forzar cualquiera de los dos modos con el selector de modo de documento. En modo HTML los nombres de etiquetas y atributos se pasan a minúsculas, así que escribe tu XPath en minúsculas: //div[@class], no //DIV[@CLASS].
Espacios de nombres
El XML con espacios de nombres necesita registrar los prefijos:
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/">
<item>
<content:encoded>...</content:encoded>
</item>
</rss>
El probador recorre el documento en busca de declaraciones xmlns y registra cada prefijo automáticamente, así que //content:encoded funciona sin más. Un espacio de nombres por defecto (un xmlns="..." a secas) no tiene prefijo en el documento, así que el probador lo asocia al prefijo d: selecciona los <item> de un feed con espacio de nombres por defecto con //d:item. Los espacios de nombres registrados se listan junto a los resultados.
Lo que este probador no evalúa
Los navegadores evalúan XPath 1.0, el mismo dialecto que usa la mayoría de las herramientas de scraping. Las funciones de XPath 2.0 y posteriores, como matches(string, regex), tokenize(string, delimiter), las expresiones for ... return y los operadores de secuencias, no forman parte de él; las encontrarás en las cadenas de herramientas de XSLT 2.0/3.0. XPath 1.0 sigue siendo la opción más portable para el scraping web.
Consejos para probar
- Empieza en general y ve acotando. Primero
//div, luego//div[@class]y después el valor concreto de la clase. - Revisa las declaraciones de espacios de nombres. La mayoría de los “¿por qué mi XPath no devuelve nada?” son espacios de nombres; mira la lista de espacios de nombres registrados.
- Cuidado con las mayúsculas. XML distingue mayúsculas de minúsculas. El modo HTML pasa los nombres a minúsculas.
- Prueba string() al extraer texto.
//p/text()ystring(//p)difieren cuando hay marcado anidado.
Preguntas frecuentes
No, solo XPath. La mayoría de los navegadores admiten ambos mediante document.querySelectorAll (CSS) y document.evaluate (XPath). Usa el que resulte más claro para cada tarea.
El análisis de HTML pasa los nombres de etiquetas y atributos a minúsculas. Asegúrate de que tu XPath usa minúsculas: //div[@class], no //DIV[@CLASS]. Comprueba también el modo: forzar XML sobre un HTML poco estricto falla con un error de análisis, mientras que el modo HTML lo analiza con tolerancia.
Los prefijos declarados en el documento se registran automáticamente para tu expresión. Un espacio de nombres por defecto se asocia al prefijo d, de modo que //d:item selecciona los elementos <item> de un documento con espacio de nombres por defecto. Las asociaciones activas se listan junto a los resultados.
No. El documento y la expresión los evalúa el propio motor XPath de tu navegador y no se envían a nuestro servidor, no se almacenan ni se añaden a la dirección de la página; solo permanecen en la sesión de este navegador para que la vista de varios pasos pueda mostrar tus resultados.
Herramientas relacionadas
Referencia de la tabla ASCII
Tabla ASCII completa del 0 al 127 con decimal, hex, octal, binario y referencia numérica HTML para cada carácter, incluidos los códigos de control como NUL, LF y DEL.
Generador de letras aleatorias
Genera letras aleatorias A-Z. Elige la cantidad, usa mayúsculas, minúsculas o mezcla de ambas, y aplica el resultado en juegos, consignas o clase.
Formateador de JSON
Pega JSON para verlo con sangría de 2 o 4 espacios, minificarlo en una salida compacta o comprobar rápidamente la sintaxis antes de copiar el resultado.
Simplificador de Álgebra Booleana
Evalúa una expresión booleana para cada combinación de entradas y muestra la tabla de verdad completa. Admite hasta cinco variables y los operadores &, |, ! y ^.
Generador de Paletas de Color
Genera paletas monocromáticas, análogas, complementarias, triádicas o tetrádicas desde un color base HEX y exporta variables CSS listas para copiar.
Referencia de caracteres HTML
Lista buscable de entidades HTML, sus códigos nombrados y numéricos, y una copia con un clic para caracteres y símbolos especiales.