Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e) (modifié)

Bonjour amis codeurs :P

 

Je suis en train d'essayer de décrypter un fichier XML en PHP, mais je ne m'en sort pas...

 

Mes très maigres compétences, ne suffisent pas pour se genre d'exercice.

 

Avant que je passe au CMS KWSPHP, et avant la mise a jours du programme qui génère se fichier XML (stats de trackmania) j'avais un fichier PHP capable de décrypter ce XML, mais a priori il ne marche plus sur le nouveau XML formaté.

 

J'ai donc espoir de trouver de l'aide ici, car tout seul, même en allant me renseigner sur DOM et compagnie, je n'arrive a rien.

 

Voici le fichier XML concerné :

 

<?xml version="1.0" encoding="utf-8" ?>
<status>
<login1>gwgamer</login1>
<login2>julkien</login2>
<login3>prototype-yoan</login3>
<login4>soner-25</login4>
<nbplayer>4</nbplayer>
<mode>1</mode>
<uid>XTw1b25UBOshTR_TeM3hofyvap6</uid>
<chat1>$99F$s$F00> Now playing on ASH-atitude</chat1>
<chat2>$99F$z$0d0Note actuelle: $m$fff12$0d0/20 en $m$fff2$0d0 vote(s)</chat2>
<chat3>$99F$ff0>> $fff Nouvelle note: $0f08.7$fff/20 en 3 vote(s)</chat3>
</status>

 

Moi je cherche juste a afficher dans un petit bloc du site, les différents login "connecté" sur le serveur <login1><login2> etc etc etc...

 

Après pour le reste si j'arrive déja a comprendre, avec un jolie exemple comment faire cela, je pourrais compléter.

 

car <uid> est la map, dans le script de base, il va chercher la map dans un répertoire en fonction de son <uid> et extrait les infos de c'elle si.

 

Je mets dans ce pastebin un script qui décode le dit fichier XML, mais que je n'arrive pas du tout a mettre en forme pour récupérer que les données dont j'ai besoin, sans les couleurs, et tout le reste, si des fois cela peut aider.

 

Je remercie d'avance tous ceux qui se pencheront sur mon problème.

 

Cordialement,

Modifié par julkien

Posté(e)
Problème d'indentation dans ton fichier XML :

 

heuuu indentation :P pourquoi pas, je sais même pas ce que ça veut dire :P

 

Par contre je l'ais couper, pour faire plus simple parce que le fichier était énormément plus long, peut être est-ce de ça que tu parle ?

  • Modérateurs
Posté(e)

Faire des indentations (“échancrure en forme de coup de dents”), c'est montrer visuellement par des tabulations successives les niveaux hiérarchiques de ta structure XML. En l'occurrence, il y a dans ton fichier deux niveaux hiérarchiques, et ça donnerait ça :

 

<?xml version="1.0" encoding="utf-8" ?>
<status>
<login1>gwgamer</login1>
<login2>julkien</login2>
<login3>prototype-yoan</login3>
<login4>soner-25</login4>
<nbplayer>4</nbplayer>
<mode>1</mode>
<uid>XTw1b25UBOshTR_TeM3hofyvap6</uid>
<chat1>$99F$s$F00> Now playing on ASH-atitude</chat1>
<chat2>$99F$z$0d0Note actuelle: $m$fff12$0d0/20 en $m$fff2$0d0 vote(s)</chat2>
<chat3>$99F$ff0>> $fff Nouvelle note: $0f08.7$fff/20 en 3 vote(s)</chat3>
</status>

Ça facilite l'appréhension visuelle de la structure de l'arbre mais, à ma connaissance, ça n'aide en rien le traitement des données lui-même. Pour moi, le problème ne vient pas de là. En revanche les tags <chat1> et <chat3> contiennent des chevrons qui perturbent peut-être la compréhension du flot XML.

 

<chat1>$99F$s$F00> Now playing on ASH-atitude</chat1>

<chat3>$99F$ff0>> $fff Nouvelle note: $0f08.7$fff/20 en 3 vote(s)</chat3>

Fais un essai en enlevant ces >, juste pour voir. Ensuite, il doit exister une façon de coder la chaîne de caractères pour pouvoir les accepter mais, si je l'ai su, j'ai oublié... :P

 

Nota : à la relecture, j'ai soudain l'impression de te conduire sur une fausse piste...

Posté(e)

Salut Dylav,

 

a force de chercher j'ai reussi a refaire le fichier cité dans le pastebin et sa fonctionne.

 

Donc a priori c'est résolut.

 

Maintenant j'ai un autre XML, mais j'ai aucun fichier d'avance pour l'afficher en PHP, le voici :

 

<?xml version="1.0" encoding="utf-8" ?>
<RECORD>
<NickName>$w$999»$b00RBR$999«$i$10fDaBuGs$fff}Al></NickName>
<Login>dabugs</Login>
<BestTime>47620</BestTime>
<DateRec>2007-11-02 03:55:29</DateRec>
<Top2NickName>$s$w$i$s$3CFW$FC0@$3CFr$FC0z</Top2NickName>
<Top2Login>warz</Top2Login>
<Top2BestTime>47760</Top2BestTime>
<Top2DateRec>2008-05-11 11:51:11</Top2DateRec>
<Top3NickName>$FFF¤ZEB¤$00FDroco</Top3NickName>
<Top3Login>droco</Top3Login>
<Top3BestTime>48230</Top3BestTime>
<Top3DateRec>2007-10-26 20:18:19</Top3DateRec>
<Top4NickName>$b$fff¤ZEB¤$00fThOm@s   recrute</Top4NickName>
<Top4Login>thomasp08</Top4Login>
<Top4BestTime>49290</Top4BestTime>
<Top4DateRec>2008-05-04 17:56:20</Top4DateRec>
<Top5NickName>$fff¤ZEB¤$w$099Fre$900d$099Fre$900d</Top5NickName>
<Top5Login>fredfred</Top5Login>
<Top5BestTime>49810</Top5BestTime>
<Top5DateRec>2008-04-11 16:11:43</Top5DateRec>
<Top6NickName>mrshab</Top6NickName>
<Top6Login>mrshab</Top6Login>
<Top6BestTime>49910</Top6BestTime>
<Top6DateRec>2008-02-07 12:23:23</Top6DateRec>
<Top7NickName>$f00[AR]$fffFlyghost</Top7NickName>
<Top7Login>fyghost</Top7Login>
<Top7BestTime>50030</Top7BestTime>
<Top7DateRec>2007-10-13 10:59:07</Top7DateRec>
<Top8NickName>$w$666Ï?αƒ$i$00fL@$fffur$f00ent</Top8NickName>
<Top8Login>lwc93</Top8Login>
<Top8BestTime>50090</Top8BestTime>
<Top8DateRec>2008-03-01 12:01:49</Top8DateRec>
<Top9NickName>vorik</Top9NickName>
<Top9Login>vorikkhayn</Top9Login>
<Top9BestTime>50730</Top9BestTime>
<Top9DateRec>2007-10-06 16:10:32</Top9DateRec>
<Top10NickName>$w$000(D$FF0z$F00G$000)$00fGashounet</Top10NickName>
<Top10Login>gash</Top10Login>
<Top10BestTime>50790</Top10BestTime>
<Top10DateRec>2007-10-06 16:07:52</Top10DateRec>
<Top11NickName>$w$008///SE$010RV$008AL\\\</Top11NickName>
<Top11Login>knksniper</Top11Login>
<Top11BestTime>50970</Top11BestTime>
<Top11DateRec>2007-11-18 11:57:13</Top11DateRec>
<Top12NickName>$w[ATP]$s$00f�ツァ $fffO$ff0.$000o</Top12NickName>
<Top12Login>edo.o</Top12Login>
<Top12BestTime>51080</Top12BestTime>
<Top12DateRec>2007-10-06 16:10:46</Top12DateRec>
<Top13NickName>$s¤ZEB¤ $009PrIInT_IInPuT $00Srecrute</Top13NickName>
<Top13Login>priint</Top13Login>
<Top13BestTime>51260</Top13BestTime>
<Top13DateRec>2007-11-15 00:47:09</Top13DateRec>
<Top14NickName>$fff¤ZEB¤$f00julkien</Top14NickName>
<Top14Login>julkien</Top14Login>
<Top14BestTime>51410</Top14BestTime>
<Top14DateRec>2008-05-19 13:28:57</Top14DateRec>
<Top15NickName>$w$666Ï?αƒ$FF0S$FE0k$FC0u$FB0r$F90l`</Top15NickName>
<Top15Login>skurlat</Top15Login>
<Top15BestTime>51610</Top15BestTime>
<Top15DateRec>2008-05-17 18:43:01</Top15DateRec>
<Top16NickName>$f80ΛΛ$wiplou</Top16NickName>
<Top16Login>miplou</Top16Login>
<Top16BestTime>51630</Top16BestTime>
<Top16DateRec>2007-10-07 18:55:31</Top16DateRec>
<Top17NickName>$W$s$F00So$E51D$DB3oM</Top17NickName>
<Top17Login>sodom</Top17Login>
<Top17BestTime>51690</Top17BestTime>
<Top17DateRec>2008-01-28 18:21:06</Top17DateRec>
<Top18NickName>$i$w$0f0Gr$f00eg  95</Top18NickName>
<Top18Login>zebgreg</Top18Login>
<Top18BestTime>51770</Top18BestTime>
<Top18DateRec>2007-10-05 21:40:30</Top18DateRec>
<Top19NickName>rojule</Top19NickName>
<Top19Login>rojule</Top19Login>
<Top19BestTime>52070</Top19BestTime>
<Top19DateRec>2008-05-19 20:56:11</Top19DateRec>
<Top20NickName>$ff0ζζ$f00ŢMiDaTeCk</Top20NickName>
<Top20Login>midateck</Top20Login>
<Top20BestTime>52190</Top20BestTime>
<Top20DateRec>2008-04-30 19:05:42</Top20DateRec>
<Top21NickName>ichigo62</Top21NickName>
<Top21Login>ichigo62</Top21Login>
<Top21BestTime>52390</Top21BestTime>
<Top21DateRec>2008-04-21 18:44:55</Top21DateRec>
<Top22NickName>$BF4Qui×”$FC1Qui×”</Top22NickName>
<Top22Login>quinquin</Top22Login>
<Top22BestTime>52490</Top22BestTime>
<Top22DateRec>2008-02-22 23:06:33</Top22DateRec>
<Top23NickName>puravida90</Top23NickName>
<Top23Login>puravida90</Top23Login>
<Top23BestTime>52870</Top23BestTime>
<Top23DateRec>2008-04-28 23:07:59</Top23DateRec>
<Top24NickName>$w$00f*-$fffTMP$f00-*$fffnikus</Top24NickName>
<Top24Login>nikus25</Top24Login>
<Top24BestTime>52930</Top24BestTime>
<Top24DateRec>2008-04-24 20:14:44</Top24DateRec>
<Top25NickName>$00f :K$fffiR$f00i</Top25NickName>
<Top25Login>kirikouche</Top25Login>
<Top25BestTime>52950</Top25BestTime>
<Top25DateRec>2008-04-10 21:32:53</Top25DateRec>
<Top26NickName>$fff¤ZEB¤$0f0$wOre</Top26NickName>
<Top26Login>ore</Top26Login>
<Top26BestTime>52980</Top26BestTime>
<Top26DateRec>2008-05-17 21:13:33</Top26DateRec>
<Top27NickName>reto25</Top27NickName>
<Top27Login>reto25</Top27Login>
<Top27BestTime>53170</Top27BestTime>
<Top27DateRec>2008-04-28 16:28:00</Top27DateRec>
<Top28NickName>skaterfou237</Top28NickName>
<Top28Login>skaterfou237</Top28Login>
<Top28BestTime>53280</Top28BestTime>
<Top28DateRec>2008-05-13 22:43:20</Top28DateRec>
<Top29NickName>doofy2063</Top29NickName>
<Top29Login>doofy2063</Top29Login>
<Top29BestTime>53350</Top29BestTime>
<Top29DateRec>2008-05-03 00:42:59</Top29DateRec>
<Top30NickName>$f00V8RT$000Jaguar</Top30NickName>
<Top30Login>tyros25</Top30Login>
<Top30BestTime>53450</Top30BestTime>
<Top30DateRec>2008-05-15 21:06:27</Top30DateRec>
<Top31NickName>$fff¤ZEB¤$i$00fGrom</Top31NickName>
<Top31Login>darthgrom</Top31Login>
<Top31BestTime>53470</Top31BestTime>
<Top31DateRec>2008-04-22 20:25:59</Top31DateRec>
<Top32NickName>poul3t</Top32NickName>
<Top32Login>poul3t</Top32Login>
<Top32BestTime>53470</Top32BestTime>
<Top32DateRec>2008-04-28 23:09:29</Top32DateRec>
<Top33NickName>Yevy</Top33NickName>
<Top33Login>evo</Top33Login>
<Top33BestTime>53540</Top33BestTime>
<Top33DateRec>2008-05-12 14:28:30</Top33DateRec>
<Top34NickName>$i$00fDe$fffmõn$f0024</Top34NickName>
<Top34Login>demon24</Top34Login>
<Top34BestTime>53560</Top34BestTime>
<Top34DateRec>2008-04-30 19:05:32</Top34DateRec>
<Top35NickName>globob</Top35NickName>
<Top35Login>globob</Top35Login>
<Top35BestTime>53700</Top35BestTime>
<Top35DateRec>2008-05-17 18:41:31</Top35DateRec>
<Top36NickName>$w$000F$555F$AAA*$FFFW$FFFi$FCAl$F95l$F60y</Top36NickName>
<Top36Login>megawilly</Top36Login>
<Top36BestTime>53720</Top36BestTime>
<Top36DateRec>2008-05-13 22:44:13</Top36DateRec>
<Top37NickName>_lfr__madmike25</Top37NickName>
<Top37Login>_lfr__madmike25</Top37Login>
<Top37BestTime>53730</Top37BestTime>
<Top37DateRec>2008-04-22 18:42:02</Top37DateRec>
<Top38NickName>$fff¤ZEB¤$00fJ3sS$f0f*$f00recrute$0f0*</Top38NickName>
<Top38Login>jess</Top38Login>
<Top38BestTime>53770</Top38BestTime>
<Top38DateRec>2008-03-01 11:58:56</Top38DateRec>
<Top39NickName>$00FS$0FAp$AF0a$F00f</Top39NickName>
<Top39Login>spaf</Top39Login>
<Top39BestTime>53780</Top39BestTime>
<Top39DateRec>2008-04-10 21:32:35</Top39DateRec>
<Top40NickName>Boneless</Top40NickName>
<Top40Login>h2_boneless</Top40Login>
<Top40BestTime>53840</Top40BestTime>
<Top40DateRec>2007-10-07 18:56:21</Top40DateRec>
<Top41NickName>$00f$w=TuS=$fff$sBoulo$f00$sche</Top41NickName>
<Top41Login>-sn-bouloche</Top41Login>
<Top41BestTime>53850</Top41BestTime>
<Top41DateRec>2008-03-04 06:26:58</Top41DateRec>
<Top42NickName>kerhop</Top42NickName>
<Top42Login>kerhop</Top42Login>
<Top42BestTime>53860</Top42BestTime>
<Top42DateRec>2008-03-04 06:29:08</Top42DateRec>
<Top43NickName>TroXis</Top43NickName>
<Top43Login>troxis</Top43Login>
<Top43BestTime>53860</Top43BestTime>
<Top43DateRec>2008-04-30 19:05:59</Top43DateRec>
<Top44NickName>celina25</Top44NickName>
<Top44Login>celina25</Top44Login>
<Top44BestTime>54070</Top44BestTime>
<Top44DateRec>2008-04-24 20:12:41</Top44DateRec>
<Top45NickName>FireWolf</Top45NickName>
<Top45Login>phenix25</Top45Login>
<Top45BestTime>54160</Top45BestTime>
<Top45DateRec>2008-05-10 16:29:43</Top45DateRec>
<Top46NickName>$i$w$s$0f0C$052ro$0f0k</Top46NickName>
<Top46Login>crok</Top46Login>
<Top46BestTime>54260</Top46BestTime>
<Top46DateRec>2008-05-11 13:55:43</Top46DateRec>
<Top47NickName>zipoutek</Top47NickName>
<Top47Login>zipoutek</Top47Login>
<Top47BestTime>54400</Top47BestTime>
<Top47DateRec>2008-04-26 21:09:53</Top47DateRec>
<Top48NickName>ludo77k</Top48NickName>
<Top48Login>ludo77k</Top48Login>
<Top48BestTime>54560</Top48BestTime>
<Top48DateRec>2008-05-21 19:06:48</Top48DateRec>
<Top49NickName>$i$wKalimero$f0095</Top49NickName>
<Top49Login>nain_nain</Top49Login>
<Top49BestTime>54630</Top49BestTime>
<Top49DateRec>2008-05-19 13:32:57</Top49DateRec>
<Top50NickName>davidstar_tm</Top50NickName>
<Top50Login>davidstar_tm</Top50Login>
<Top50BestTime>54960</Top50BestTime>
<Top50DateRec>2008-05-14 16:18:09</Top50DateRec>
<TrackName>$00a$wI want $n$0dfto $w$sknow</TrackName>
<UId>5vDsmRcAZNHb95_f76Pw62C6hs7</UId>
<Author>fredfred</Author>
<Note>12.249999999999</Note>
<NbVote>64</NbVote>
</RECORD>

 

Serait-il possible d'avoir un bout de code capable de lire (et de retourner dans une variable) certain éléments de se fichier ?

 

PS: je n'est aucun moyen de modifier se XML qui est généré par le serveur.

  • Modérateurs
Posté(e)

Je ne saisis pas bien où tu vois une difficulté. De même que tu as réussi à adapter le fameux “pastebin” pour traiter ton premier flot XML, il te suffit de l'adapter à la lecture de ton nouveau flot. Chaque ligne se présente sous la forme <tag>valeur</tag> et, comme le montre par exemple la fonction GetRec, tu recherches la position de <tag> et celle de </tag>, pour extraire ce qui se situe entre les deux, c'est-à-dire valeur, et l'affecter à une variable par exemple nommée $tag. Ensuite, le principe semble être de construire dynamiquement une fenêtre WEB à l'aide d'un flot HTML prédéterminé, dans lequel tu injectes les variables récupérées dans le flot XML.

 

Il existe des méthodes de parsing moins “artisanales”, qui transforment automatiquement un flot XML en flot HTML au travers d'un masque XSLT. Regarde par exemple “XML - Mise en page avec les feuilles de style XSL” chez commentcamarche.net. Les principes sont simples, mais la mise en œuvre ne l'est pas toujours... :P

  • Tonton a modifié le titre en Décoder un fichier XML

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...