Come testare un'espressione XPath
- Incolla il tuo XML, apri un file o usa il catalogo prodotti di esempio.
- Scrivi un'espressione XPath o clicca su uno degli esempi. Il risultato si aggiorna mentre scrivi e Invio la valuta subito.
- Leggi il risultato: il numero di nodi corrispondenti con tipo e contenuto, oppure il numero, la stringa o il valore booleano restituito dall'espressione.
Prontuario XPath: le espressioni più usate
| Espressione | Seleziona |
|---|---|
/catalog | L'elemento radice catalog |
//product | Ogni elemento product, a qualsiasi profondità |
/catalog/product/name | Il name di ogni prodotto, passo dopo passo a partire dalla radice |
//product/@id | L'attributo id di ogni prodotto |
//product[@category='books'] | I prodotti il cui attributo category è books |
//product[price > 20] | I prodotti con prezzo superiore a 20, confrontati come numeri |
//product[contains(name, 'USB')] | I prodotti il cui nome contiene “USB” (distingue maiuscole e minuscole) |
//product[not(tags)] | I prodotti senza un figlio tags |
(//product)[1] | Il primo prodotto del documento |
//product[1] | Il primo prodotto all'interno di ciascun elemento padre |
//product[last()] | L'ultimo prodotto all'interno di ciascun elemento padre |
//name/text() | I nodi di testo all'interno di name |
//price/.. | L'elemento padre di ogni price |
//*[local-name()='product'] | Gli elementi product in qualsiasi namespace |
count(//product) | Il numero di prodotti |
sum(//price) | La somma di tutti i prezzi |
string(//product[1]/name) | Il nome del primo prodotto come stringa |
Namespace in XPath
XPath 1.0 non prevede un namespace predefinito. In un documento con xmlns="…", come una sitemap o una fattura NF-e, //url non trova nulla, perché gli elementi appartengono a quel namespace. Per questo il tester associa il namespace predefinito al prefisso x: (oppure d: se x è già in uso), così //x:url/x:loc funziona. I prefissi dichiarati nel documento, come cfdi: in una fattura CFDI, si possono usare così come sono scritti. Negli strumenti senza configurazione dei namespace, //*[local-name()='url'] funziona ovunque.
Domande frequenti
Quale versione di XPath supporta il tester?
XPath 1.0, la versione integrata in tutti i browser e nella maggior parte delle librerie XML. Le funzioni di XPath 2.0 e successive, come matches(), lower-case() o string-join(), non sono disponibili.
Perché la mia espressione XPath non restituisce nulla?
Le cause più comuni sono un namespace predefinito (usa il prefisso x: indicato sotto gli esempi), maiuscole e minuscole diverse – XPath distingue tra maiuscole e minuscole – e le posizioni, che partono da 1, non da 0.
Quanti risultati vengono mostrati?
Vengono contate tutte le corrispondenze e le prime 500 sono elencate con il tipo di nodo e il contenuto.
Il mio XML viene caricato su un server?
No. L'XML viene analizzato e interrogato nel tuo browser. Solo un URL che carichi viene recuperato tramite il nostro server.