Vous n'êtes pas identifié(e).

#1 12/07/2010 17:14:03

ced
Membre

Interrogation XPATH sous PostgreSQL 8.4

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

#2 12/07/2010 22:58:56

daamien
damien clochard

Re : Interrogation XPATH sous PostgreSQL 8.4

PostgreSQL implémente la version 1.0 de XPATH.

Peut-être que la fonction name() n'est disponible qu'à partir de XPATH 2.0 ?

Hors ligne

#3 13/07/2010 08:20:04

ced
Membre

Re : Interrogation XPATH sous PostgreSQL 8.4

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

#4 13/07/2010 09:12:45

Marc Cousin
Membre

Re : Interrogation XPATH sous PostgreSQL 8.4

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 :

http://archives.postgresql.org/pgsql-ha … g01055.php


Marc.

Hors ligne

#5 13/07/2010 10:08:00

ced
Membre

Re : Interrogation XPATH sous PostgreSQL 8.4

Bon, il va donc falloir que j'essaie de contourner le problème.

Merci pour l'info.

Hors ligne

Pied de page des forums