Traitement d'un fichier XML

Résolu/Fermé
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 - 5 oct. 2007 à 20:47
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 - 20 oct. 2007 à 03:28
Bonjour,

quelqu'un aurait il une idée a me soumettre afin de transformer un fichier XML de la forme :
<ite
<date_in>07-10-01</date_in>
<type_id>1</type_id>
<nights>1</nights>
</item>

<item>
<date_in>07-10-02</date_in>
<type_id>1</type_id>
<nights>1</nights>
</item>

<item>
<date_in>07-10-03</date_in>
<type_id>1</type_id>
<nights>1</nights>
</item>


en liste de dates de type (07/10/01, 07/10/02,07/10/03)

Par avance merci
A voir également:

7 réponses

Bonjour,

est-ce que tu as une contrainte sur le langage à utiliser?
0
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 5
6 oct. 2007 à 14:24
Bonjour,
je suis dans des pages en PHP, a quelle solution penses tu?
Merci
0
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 5
18 oct. 2007 à 17:56
Bonjour
quelqu'un aurait il une idée pour m'aider???
Merci
0
lazabelle Messages postés 11 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 2 novembre 2007 2
19 oct. 2007 à 11:03
bonjour zeitoun !

je ne suis pas une pro, mais en utilisant les expressions régulières et php c'est possible :

<?php

//récupération du contenu de ton fichier xml.
$contenu=file_get_contents("tonfichierxml.xml");

// tu remplaces les tirets par un slash
$format_date=preg_replace("/-/","/",$contenu);

//et tu récupère le contenu des balises date_in sous forme d'un tableau
preg_match_all("|<date_in>(.*)</date_in>|U", $format_date, $date_in);

//tu comptes le nbre de résultats...
$res=count($date_in[0]);

//tu commences l'affichage
echo '(';

//puis tu fais une boucle
for ($i=0; $i<$res; $i++) {

//condition pour que le dernier membre de la boucle ne soit pas suivi d'une virgule
if ($i<($res-1)) {
echo $date_in[0][$i].', ';
}

else echo $date_in[0][$i].')';

}
?>

voila donc une proposition... mais tu peux faire autrement en utilisant je crois une feuille xslt.

a+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 5
19 oct. 2007 à 20:19
Bonjour et merci beaucoup, je debute et je ne connais pas biens les instructions


J'ai encore un souci

je dois inclure la liste des resultats dans un script java
Dans un calendrier Yahoo en fait
.. mais le script PHP me donne le resultat suivant si je l'insere directement

07/10/01</date_in>, <date_in>07/10/02</date_in>, <date_in>07/10/03</date_in>,

Quelle est la solution pour que la liste s'affiche correctement? ou pour inclure le resultat dans un script java
merci
0
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 5
19 oct. 2007 à 20:59
En fait ton code est bien en affichage mais en code source il contient encore les balises <date_in> et </date_in> comment faire pour les supprimer?
Merci
0
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 5
20 oct. 2007 à 03:28
j'ai trouvé une solution

c'est de remplacer
preg_match_all("|<date_in>(.*)</date_in>|U", $format_date, $date_in);

par
$motif='`(../../..)+`';
preg_match_all($motif,$format_date,$date_in);

et au final mes dates devraient etre de la forme 19/10/2007 .. je vais donc chercher des scripts pour les modifier
merci pour votre aide
0