script pour générer un xml à partir bdd mysql - Shell/Batch - Programmation
Marsh Posté le 06-06-2008 à 11:35:48
J'ai créer une fonction stockée que me renvoie par exemple:
<markers>
<marker lat="2.5" lng="2.6" info="nom"/>
...
</markers>
mais lorsque dans mon script je veux mettre le resultat dans un fichier xml il ne fait rien:
XML_=`echo "select xml_googlemap() as res"|mysql --user=...`
XML=`echo $XML_|cut -f 2 -d " "`
echo -e "<?xml version='1.0' encoding='ISO-8859-1'?>\n$XML\n">donnees.xml
En ligne de commande linux j'ai bien le resultat cherché mais pas dans le script
Marsh Posté le 06-06-2008 à 13:39:05
ReplyMarsh Posté le 07-06-2008 à 22:20:38
Elmoricq a écrit : À quoi te sert cette ligne-ci ?
|
Boaf... A vue de nez il stocke le 2° mot de la variable XML_ dans la variable XML...
Marsh Posté le 08-06-2008 à 12:02:02
et avec
echo -e "<?xml version='1.0' encoding='ISO-8859-1'?>\n$XML\n" > donnees.xml
des fois que echo ait prit tout le texte collé comme un seul argument
A+,
Marsh Posté le 08-06-2008 à 13:11:29
Sve@r a écrit : |
Nan ok, mais à quoi ça lui sert de faire ça ?
Parce qu'à priori, le résultat est que $XML ne contient pas grand chose.
Marsh Posté le 09-06-2008 à 19:58:36
Elmoricq a écrit : Nan ok, mais à quoi ça lui sert de faire ça ? |
Ah ben ça...
Elmoricq a écrit : Parce qu'à priori, le résultat est que $XML ne contient pas grand chose. |
Il est possible que XML_ contienne plusieurs espaces accolés. Et ça, le cut ne sait pas gérer. Et puis quand on traite une chaine de caractères, c'est bien de la protéger par des doubles guillemets histoire de protéger s'il y a des caractères un peu exotiques que le shell interpréterait à sa façon...
A voir si ça marche: XML=`echo "$XML_" |awk '{print $2}'`
Marsh Posté le 09-06-2008 à 20:22:57
Sve@r a écrit : |
Disons qu'il considère l'espace (et la tabulation) comme similaire à n'importe quel autre séparateur, et que deux espaces accolés signifient qu'il s'agit d'un champ vide (même si je n'ai encore jamais rencontré de cas où c'est utile ).
Marsh Posté le 06-06-2008 à 10:07:56
Bonjour,
je veux générer un fichier xml, à partir d'une heure donnée.
Je sais que dans mon script j'utilise :
result =`echo "selelect ...."|mysql --user=... ....
pour extraire une ligne.
Comment puis-je faire pour extraire toutes les lignes, afin de construire mon fichier xml ?