Message posté par : Nicolas Ribot
----------------------------------------
Ok, dans un document xml avec des namespaces, il faut redéfinir les namespaces dans la
fonction xpath, pour que PG puisse parser le doc.
Dans votre doc exemple, je n'ai pas trouvé les tags:
<gmd:organisationName>
<gco:CharacterString>SANDRE</gco:CharacterString>
Mais pour extraire par exemple les names des CI_Organisation, vous pouvez faire:
-----------------
Code :
select id, unnest(xpath(
'//cit:CI_Organisation/cit:name/gco:CharacterString/text()',
doc,
ARRAY[
ARRAY['cit',
'http://standards.iso.org/iso/19115/-3/cit/2.0'],
ARRAY['gco',
'http://standards.iso.org/iso/19115/-3/gco/1.0']
])) as orga_name
from table_avec_xml;
-----------------
les namespaces utilisés dans le xpath doivent etre définis dans la fonction, sous la forme
d'arrays.
Vous trouvez ces valeurs dans le tag root de votre document, ou chaque namespace
apparaissant dans le document (par ex gco:) est défini dans une propriété
xmlns:gco=<valeur>, par ex:
xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0"
Vous pourriez utiliser du SQL pour extraire les namespaces du document et créer les
tableaux nécessaires pour la fonction xpath.
Nicolas
Nicolas
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=370260#p370260
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net