Charger un fichier XML et lire les valeurs dedans


#1

Bonjour à tous !

Malgré de nombreuses tentatives, la lecture des differents posts du forum… je reste coincé à ne pas être capable de lire un fichier XML pour en extraire une valeur.

mon fichier XML (dans le rép /cartes, au même niveau que le fichier gdg) :
(j’ai ajouté un espace après < pour que ça s’affiche ici)
< ?xml version=“1.0” encoding=“UTF-8”?>
< root>
< pom>5< /pom>
< ora>9< /ora>
< /root>

Mes lignes pour récupérer la valeur :

  • Charger le fichier structuré “cartes/testXML.xml” en mémoire
  • Lire “root/pom” du fichier “cartes/testXML.xml” et stocket la valeur dans valXml
  • Faire = VariableString(valXml) au texte de TxtFl

Une idée du problème que j’ai ?
Car je sèche complètement, alors que ça doit être tout bête

Mes lignes pour récupérer la valeur :

  • Charger le fichier structuré “cartes/testXML.xml” en mémoire
  • Lire “root/pom” du fichier “cartes/testXML.xml” et stocket la valeur dans valXml
  • Faire = VariableString(valXml) au texte de TxtFl

Une idée du problème que j’ai ?
Car je sèche complètement, alors que ça doit être tout bête


#2

Salut,
Peut-être peux-tu tester chaque étape pour voir où ça coince, dans un premier temps ?
Je ne connais pas le XML mais dans la docu, le format ne ressemble pas trop au tien.

<Fichier>
<Information version="1.2"/>
<Liste>
    <!-- Liste du personnel et des equipements -->
    <Personne nom="blabla" age="30"/>
<Chaise nom="chaise de blabla"/>
    <Personne nom="durand" age="25"/>
<Bureau nom="bureau de durand"/>
<Personne nom="dupont" age="27"/>
</Liste>

(Il y a un bouton “</>” pour citer du code.)

http://wiki.compilgames.net/doku.php/fr/gdevelop/articles/advancedxml/read


#3

Merci Gruk.
Alors, pour le XML donné dans l’exemple… ça concerne Advanced XML qui n’est pas disponible dans la partie HTML5 (j’avais précisé que je suis sous ce mode, mais en éditant, j’ai dû faire sauter la ligne).
Donc j’essaie d’utiliser le Basic XML intégré.

Et pour le bouton code… j’avais essayé sans succès ! Mais je viens de comprendre comment il marche !
Il faut coller son code, le sélectionner puis appuyer sur le bouton.

Mon XML est valide et s’il faut le formater autrement, aucun problème.

Mais j’ai vu plusieurs posts, où le xml était du même genre, et visiblement les autres ont fini par réussir à lire ce xml.

Pour tester à chaque étape où ça coince… aucune idée, je ne vois même pas comment faire, pour voir si le fichier est bien lu ou pas !


#4

Pour l’import de JSON, il y a une variable facultative qui indique si le fichier a été importé correctement, il n’y a pas de fonctionnalité similaire pour le XML ?
Es-tu sur GD4 ? Je ne vois pas de fonctions XML dans GD5.

Au fait, j’ai cru comprendre que le chargement de fichiers pose problème dans certaines configurations, notamment si le jeu est chargé via un navigateur. Ce serait bien de confirmer ta configuration.


#5

Merci Gruk.

Je suis sur GD4, et normalement, il y a Basic XML intégré.
J’utilise la fonction Charger le fichier structuré “cartes/testXML.xml” en mémoire

Si on peut faire en json, ça me va aussi.

Ma config, c’est HTML5 au niveau du choix sur GD4, et c’est pour un jeu, donc via navigateur.

Je n’ai pas regardé pour json, je ne sais pas ce qui est possible de faire ou non.

En fait, ce qui compte, c’est que je puisse importer des données dans le jeu, au moment de son chargement (des cartes pour l’instant).
Donc peut importe la manière… du moment que j’ai une solution simple et pratique.


#6

Pourquoi ne pas demander une valeur par le protocole HTTP ?
Je ne suis plus sur GD4 depuis un moment mais lire un XML externe au jeu depuis le navigateur ça fonctionne ?


#7

@Bouh, je ne sais pas.
Peut-on exploiter un fichier xml via un protocole http ?
Ce n’est pas juste une valeur à récupérer, mais un grand tableau de valeurs (des coordonnées)