Eclydre Web Manager > Développeur > Les outils > Import de fichiers XML

Import de fichiers XML

tools/importXML.php

A l'inverse de generateXML.php, importXML.php permet d'importer des données XML depuis un fichier XML de données et un fichier XML modèle de structure d'importation.
< ?xml version="1.0" encoding="utf-8" ?>
< meteo mytable="meteo_observation" myid="id" mycle="no_station" xcle="id" xcletype="attr" xtype="liste">
  < observation id="my:meteo_observation|no_station|php:$info[ 'meteo_station_id']=getsql( 'select id from meteo_station where no_station=\''.$fluxval.'\'')" datetime="my:meteo_observation|dateobs">
    < tt>my:meteo_observation|tt< /tt>
    < ff>my:meteo_observation|ff< /ff>
    < dd>my:meteo_observation|dd< /dd>
    < rh>my:meteo_observation|rh< /rh>
    < ppnn>my:meteo_observation|ppnn< /ppnn>
    < ww>my:meteo_observation|ww< /ww>
  < /observation>
< /meteo>

La syntaxe du modèle

 mytable  table mysql où importer
 myid  clé primaire table mysql
mycle
clé de jointure avec le modele xml, valeurs multiples séparées par virgule
xcle
clé de jointure XML, valeurs mulitples séparées par virgule
xcletype
type de clé XML :
attr : attribut
my: valeur récupérée depuis mysql
tag: tag xml
direct
liste sans sous tag
my:
valeur à importer dans mysql :
my:table|champ[|php: php de transformation de la valeur récupérée]

eg. tools/importXML.php?modele=import_meteo_astro.xml&filexml=../../TV5Meteo/import_new/xml/astro.xml

import_meteo_astro.xml
< ?xml version="1.0" encoding="utf-8" ?>
< astro mytable="meteo_astro" myid="id" mycle="no_station,event,dateevent" xcle="id,event,datetime" xcletype="attr,tag,tag" xtype="liste">
  < astro id="my:meteo_astro|no_station|php:$info['meteo_station_id']=getSQL( 'SELECT id FROM meteo_station WHERE no_station=''.$fluxval.''')">
    < event>my:meteo_astro|event< /event>
    < datetime>my:meteo_astro|dateevent< /datetime>
  < /astro>
< /astro>

astro.xml
< ?xml version="1.0" encoding="utf-8" ?>
< astro>
  < astro id="43296000">
    < event>sunset< /event>
    < datetime>2010-05-19 13:08:44< /datetime>
  < /astro>
  < astro id="43555000">
    < event>sunset< /event>
    < datetime>2010-05-19 13:12:07< /datetime>
  < /astro>
  < astro id="91212000">
    < event>moonset< /event>
    < datetime>2010-05-19 13:33:22< /datetime>
  < /astro>
  < astro id="71805000">
    < event>moonrise< /event>
    < datetime>2010-05-19 13:34:26< /datetime>
  < /astro>
  < astro id="42181000">
    < event>sunset< /event>
    < datetime>2010-05-19 13:37:40< /datetime>
  < /astro>
  < astro id="43003000">
    < event>sunset< /event>
    < datetime>2010-05-19 13:37:51< /datetime>
  < /astro>
  < astro id="61984001">
    < event>sunset< /event>
    < datetime>2010-05-19 13:40:08< /datetime>
  < /astro>
  < astro id="42647000">
    < event>sunset< /event>
    < datetime>2010-05-19 13:45:25< /datetime>
  < /astro>
  < astro id="61980000">
    < event>sunset< /event>
    < datetime>2010-05-19 13:46:49< /datetime>
  < /astro>