L’individuazione degli elementi (o nodi) contenuti all’interno di un documento XML costituisce il primo passo del processo di elaborazione di un documento e delle informazioni in esso contenute. Il linguaggio XPath è stato sviluppato proprio per consentire l’espressione dei riferimenti a questi documenti. Le espressioni XPath possono essere paragonate (per funzionalità) ai selettori CSS, incaricati di selezionare ed assegnare gli stili a vari nodi di documento HTML, tuttavia, le espressioni XPath risultano essere molto più potenti e flessibili.

XPath opera su una rappresentazione logica di un linguaggio XML, all’interno di tale rappresentazione il documento viene rappresentato mediante una struttura ad albero, il linguaggio XPath definisce di fatto le espressioni utili ad accedere ai nodi di quest’albero. Per questi motivi il linguaggio XPath è frequentemente utilizzato da molti altri linguaggi, al fine di eseguire l’accesso ai nodi di un documento XML. Le espressioni utilizzate per accedere ai nodi del documento prendono il nome di Location Path, la struttura di un generico Location Path è la seguente:

axes::node-test[predicate]

XPath nasce dall’esigenza di fornire una sintassi comune tra i linguaggi XSL e XPointer, solo in seguito è stato rilasciato ai programmatori come linguaggio dedicato all’accesso ai documenti XML. Il linguaggio XPath è diventato W3C Recommendation a partire dal 19 novembre 1999.

Le tecniche XPath sono oggi utilizzate:

  • Negli XML Schema per selezionare i nodi a cui assegnare vincoli di uniqueness e scope;
  • Nel linguaggio XSLT per svolgere pattern matching e selection;
  • Nei linguaggi XLink e XPointer per rappresentare le relations;
  • Nei linguaggi XSLT e XQuery per svolgere computations.

Negli ultimi anni il linguaggio è stato utilizzato all’interno delle operazioni di Data Mining.