Catégories :

Fonctions de données semi-structurées (Extraction)

XMLGET

Extrait un objet d’élément XML (souvent appelé simplement « tag ») d’un contenu d’un objet d’élément XML externe par le nom du tag et son numéro d’instance (à partir de 0) :

  • Si un argument de XMLGET est NULL, le résultat est NULL.

  • Si l’instance de tag n’est pas trouvée, le résultat est également NULL.

Syntaxe

XMLGET( <type> , <tag_name> , [ <instance_num> ] )

Notes sur l’utilisation

  • nb_instance peut être omis, auquel cas la valeur par défaut 0 est utilisée.

  • Le résultat de XMLGET n’est pas le contenu du tag, mais le tag lui-même (un objet) :

    • Pour extraire les valeurs d’attribut, utilisez GET(tag, '@attrname').

    • Pour extraire le contenu, utilisez GET(tag, '$').

    • Pour extraire le nom du tag, utilisez GET(tag, '@').

  • Les positions des tags internes dans le contenu peuvent être obtenues en utilisant GET(tag, 'inner-tag-name') ; si le contenu contient plusieurs éléments, il sera représenté par un tableau.

Exemples

SELECT GET(XMLGET(xml, 'dt', 2), '$') as "Term",
       GET(XMLGET(xml, 'dd', 2), '$') as "Definition"
FROM dictionary;