Skip to main content
CheckTown
Dev Tools

XPath Tester: interrogare documenti XML con XPath

Pubblicato 6 min di lettura
In questo articolo

Cos'e XPath?

XPath (XML Path Language) e un linguaggio di query standard W3C per selezionare nodi da documenti XML. Utilizza una sintassi simile ai percorsi per navigare nella struttura gerarchica di un albero XML, selezionando elementi, attributi e nodi di testo in base alla loro posizione, nome o valore.

XPath non e una tecnologia autonoma -- e integrato in altri standard come XSLT, XQuery e le API DOM. Tutti i browser moderni supportano XPath per interrogare documenti HTML, e strumenti come Selenium, Scrapy e lxml utilizzano ampiamente le espressioni XPath per il web scraping e il testing automatizzato.

Come funzionano le query XPath

Un'espressione XPath naviga nell'albero del documento utilizzando assi (direzioni), test dei nodi (filtri) e predicati (condizioni). Comprendere questi tre concetti permette di costruire qualsiasi query.

  • Assi e percorsi -- / seleziona dalla radice, // seleziona i discendenti ovunque, .. sale al genitore, e gli assi nominati come following-sibling:: navigano rispetto al nodo corrente
  • Predicati e filtri -- le parentesi quadre [] aggiungono condizioni: //book[price>30] seleziona i libri con prezzo superiore a 30, mentre //div[@class='main'] seleziona i div con un attributo di classe specifico
  • Funzioni e operatori -- XPath fornisce funzioni integrate come contains(), starts-with(), normalize-space() e count() per la manipolazione delle stringhe, il confronto e il conteggio dei nodi

Prova gratuitamente — nessuna registrazione richiesta

Testa una query XPath →

Quando usare XPath

XPath e essenziale ogni volta che serve estrarre dati specifici da documenti XML o HTML in modo programmatico.

  • Web scraping -- estrarre prezzi dei prodotti, titoli degli articoli o link dalle pagine web usando espressioni XPath in strumenti come Scrapy, Puppeteer o le console degli sviluppatori del browser
  • Configurazione XML -- interrogare e validare file di configurazione complessi come Maven pom.xml, manifesti Android o contesti Spring XML per trovare impostazioni o dipendenze specifiche
  • Trasformazioni XSLT -- selezionare nodi per la trasformazione nei fogli di stile XSLT, che si basano interamente sulle espressioni XPath per corrispondere ed elaborare gli elementi XML in diversi formati di output

Domande frequenti

Quando devo usare XPath invece dei selettori CSS?

I selettori CSS sono piu semplici e veloci per la selezione base degli elementi per tag, classe o ID. Scegliere XPath quando serve selezionare per contenuto testuale (//a[contains(text(),'Accedi')]), navigare verso i nodi padre, usare predicati complessi o lavorare con documenti XML (non HTML). XPath e anche richiesto nei contesti XSLT e XQuery.

Cosa e cambiato tra XPath 1.0 e 2.0?

XPath 2.0 ha aggiunto un sistema di tipi piu ricco (date, sequenze, espressioni regolari), espressioni condizionali (if/then/else), espressioni quantificate (some/every) ed espressioni di intervallo. Tuttavia, la maggior parte dei browser e degli strumenti di scraping supporta solo XPath 1.0. Usare le funzionalita di XPath 2.0 in strumenti lato server come Saxon o quando si lavora con XSLT 2.0.

Come gestire i namespace XML in XPath?

Gli elementi con namespace richiedono una mappatura dei prefissi. Nella maggior parte delle API, si registra un prefisso di namespace (es. ns='http://example.com') e poi si interroga usando quel prefisso: //ns:book/ns:title. Senza registrare il namespace, //book non corrispondera agli elementi in un namespace anche se il nome locale e 'book'. Alcuni strumenti supportano local-name() come soluzione alternativa: //*[local-name()='book'].

Strumenti correlati