Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'essaie une interrogation XPATH d'un champ XML pour récupérer le nom d'un noeud et je récupère systématiquement une chaîne vide.
Prenons un exemple simple qui reproduit le problème :
Créons un élément XML :
SELECT XMLPARSE(DOCUMENT '<unite>toto</unite>')
Si je veux récupérer le nom du noeud (ici "unite"), normalement, la requête suivante devrait fonctionner :
SELECT XPATH('name(/*)', XMLPARSE(DOCUMENT '<unite>toto</unite>'))
Or, ça renvoie un tableau vide ({}).
Comment faire pour récupérer le nom "unite" ?
Merci d'avance de votre aide,
ced
Dernière modification par ced (12/07/2010 17:53:24)
Hors ligne
PostgreSQL implémente la version 1.0 de XPATH.
Peut-être que la fonction name() n'est disponible qu'à partir de XPATH 2.0 ?
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
J'ai jeté un œil sur les spécifications de xpath 1.0 et les fonctions name() et local-name() en font pourtant bien partie...
Hors ligne
Apparemment c'est une limitation actuelle du xpath sous PostgreSQL.
Il y a un patch qui corrige ça, mais il n'est pas encore intégré. Peut-être en 9.1 :
Marc.
Hors ligne
Bon, il va donc falloir que j'essaie de contourner le problème.
Merci pour l'info.
Hors ligne
Pages : 1