XPath è un linguaggio che consente di lavorare facilmente con i documenti XML. È già utilizzabile tramite il comando DOM Find XML element e con 4D v18 R3 il supporto della sintassi XPath è stato drasticamente migliorato. Se siete tra coloro che hanno richiesto funzionalità come l’utilizzo di un carattere jolly in un percorso, continuate a leggere!
Per utilizzare la nuova sintassi con le applicazioni esistenti, è necessario selezionare l’impostazione di compatibilità “Usa XPath standard”. I database appena creati utilizzano la nuova sintassi per impostazione predefinita. È ora possibile utilizzare nuove espressioni come //, @, *, last() per semplificare le ricerche.
Esempi di scrittura di predicati
Negli esempi che seguono utilizzeremo il seguente documento XML:
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <title lang="en">The Wheel of Time</title> <title lang="fr">La roue du temps</title> <price>29.99</price> </book> <book> <title lang="en">Harry Potter</title> <price>50.00</price> </book> <book> <title lang="en">Learning XML</title> <price>39.95</price> </book> </bookstore>
- Trova il penultimo elemento libro figlio dell’elemento libreria:
$Dom_root2:=DOM Find XML element($Dom_root;"/bookstore/book[last()-1]";$arrAfound)
// Returns
//‹book›
// ‹title lang="en"›Harry Potter‹/title›
// ‹price›50.00‹/price›
//‹/book›
- Trovare tutti gli elementi titolo che hanno un attributo “lang” con valore “fr”:
$Dom_root2:=DOM Find XML element($Dom_root;"//titolo[@lang='fr']";$arrAfound)
// Returns ‹title lang="fr"›La roue du temps‹/title›
- Trova tutti gli elementi del libro che hanno un prezzo uguale a 39,95:
$Dom_root2:=DOM Find XML element($Dom_root; "book[price=39.95]";$arrAfound)</br />
// Returns
//‹book›
// ‹title lang="en"›Learning XML‹/title›
// ‹price›39.95‹/price›
//‹/book›
Questi sono solo alcuni esempi di ciò che si può fare con le nuove espressioni. È possibile combinarle in modo più o meno complesso per ottenere i risultati desiderati. Consultate la documentazione per vedere in dettaglio cosa è possibile fare con questi nuovi miglioramenti.