XPath es un lenguaje que permite trabajar fácilmente con los documentos XML. Ya es utilizable a través del DOM Find XML element y con 4D v18 R3, el soporte de la sintaxis XPath ha sido drásticamente mejorado. Si se encuentra entre los que solicitaron características como el uso de un comodín en una ruta, ¡siga leyendo!
Para utilizar la nueva sintaxis con las aplicaciones existentes, es necesario marcar el ajuste de compatibilidad «Usar XPath estándar». Las bases de datos recién creadas utilizan la nueva sintaxis por defecto. Ahora puede utilizar nuevas expresiones como //, @, *, last() para simplificar sus búsquedas.
Ejemplos de escritura de predicados
En los siguientes ejemplos utilizaremos el siguiente 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>
- Buscar el penúltimo elemento libro hijo del elemento librería:
$Dom_root2:=DOM Find XML element($Dom_root;"/librería/libro[last()-1]";$arrAfound)
// Returns
//‹book›
// ‹title lang="en"›Harry Potter‹/title›
// ‹price›50.00‹/price›
//‹/book›
- Encuentra todos los elementos title que tengan un atributo «lang» con valor «fr»:
$Dom_root2:=DOM Find XML element($Dom_root;"//título[@lang='fr']";$arrAfound
)
// Returns ‹title lang="fr"›La roue du temps‹/title›
- Encuentra todos los elementos del libro que tienen un precio igual a 39,95:
$Dom_root2:=DOM Find XML element($Dom_root; "libro[precio=39.95]";$arrAfound)</br />
// Returns
//‹book›
// ‹title lang="en"›Learning XML‹/title›
// ‹price›39.95‹/price›
//‹/book›
Estos son sólo algunos ejemplos de lo que puede hacer con las nuevas expresiones. Puedes mezclarlas de forma más o menos compleja para encontrar los resultados que necesitas. Consulte la documentación para ver con más detalle lo que puede hacer con estas nuevas mejoras.